Merge branch 'master' of /Users/iannorden/go/src/github.com/cerc-io/go-eth-state-node-iterator into port_iterator
This commit is contained in:
commit
c5076e7d37
29
.github/workflows/issues-notion-sync.yml
vendored
Normal file
29
.github/workflows/issues-notion-sync.yml
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
name: Notion Sync
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
issues:
|
||||
types:
|
||||
[
|
||||
opened,
|
||||
edited,
|
||||
labeled,
|
||||
unlabeled,
|
||||
assigned,
|
||||
unassigned,
|
||||
milestoned,
|
||||
demilestoned,
|
||||
reopened,
|
||||
closed,
|
||||
]
|
||||
|
||||
jobs:
|
||||
notion_job:
|
||||
runs-on: ubuntu-latest
|
||||
name: Add GitHub Issues to Notion
|
||||
steps:
|
||||
- name: Add GitHub Issues to Notion
|
||||
uses: vulcanize/notion-github-action@v1.2.4-issueid
|
||||
with:
|
||||
notion-token: ${{ secrets.NOTION_TOKEN }}
|
||||
notion-db: ${{ secrets.NOTION_DATABASE }}
|
1
concurrent_iterator/README.md
Normal file
1
concurrent_iterator/README.md
Normal file
@ -0,0 +1 @@
|
||||
# go-eth-state-node-iterator
|
27
concurrent_iterator/fixture/chaindata.go
Normal file
27
concurrent_iterator/fixture/chaindata.go
Normal file
@ -0,0 +1,27 @@
|
||||
package fixture
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
)
|
||||
|
||||
// TODO: embed some mainnet data
|
||||
// import "embed"
|
||||
//_go:embed mainnet_data.tar.gz
|
||||
|
||||
var (
|
||||
ChainDataPath, AncientDataPath string
|
||||
)
|
||||
|
||||
func init() {
|
||||
_, path, _, _ := runtime.Caller(0)
|
||||
wd := filepath.Dir(path)
|
||||
|
||||
ChainDataPath = filepath.Join(wd, "..", "fixture", "chaindata")
|
||||
AncientDataPath = filepath.Join(ChainDataPath, "ancient")
|
||||
|
||||
if _, err := os.Stat(ChainDataPath); err != nil {
|
||||
panic("must populate chaindata at " + ChainDataPath)
|
||||
}
|
||||
}
|
6
concurrent_iterator/fixture/chaindata/.gitignore
vendored
Normal file
6
concurrent_iterator/fixture/chaindata/.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
*.log
|
||||
CURRENT*
|
||||
LOCK
|
||||
LOG
|
||||
MANIFEST-*
|
||||
ancient/FLOCK
|
BIN
concurrent_iterator/fixture/chaindata/000002.ldb
Normal file
BIN
concurrent_iterator/fixture/chaindata/000002.ldb
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/bodies.0000.cdat
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/bodies.0000.cdat
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/bodies.cidx
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/bodies.cidx
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/diffs.0000.rdat
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/diffs.0000.rdat
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/diffs.ridx
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/diffs.ridx
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/hashes.0000.rdat
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/hashes.0000.rdat
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/hashes.ridx
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/hashes.ridx
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/headers.0000.cdat
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/headers.0000.cdat
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/headers.cidx
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/headers.cidx
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/receipts.0000.cdat
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/receipts.0000.cdat
Normal file
Binary file not shown.
BIN
concurrent_iterator/fixture/chaindata/ancient/receipts.cidx
Normal file
BIN
concurrent_iterator/fixture/chaindata/ancient/receipts.cidx
Normal file
Binary file not shown.
616
concurrent_iterator/fixture/paths.go
Normal file
616
concurrent_iterator/fixture/paths.go
Normal file
@ -0,0 +1,616 @@
|
||||
package fixture
|
||||
|
||||
var Block1_Paths = [][]byte{
|
||||
[]byte{},
|
||||
[]byte{0},
|
||||
[]byte{0, 0},
|
||||
[]byte{0, 0, 5, 14, 5, 4, 15, 1, 8, 6, 7, 15, 13, 0, 3, 0, 15, 9, 0, 6, 7, 3, 11, 8, 11, 6, 2, 5, 10, 12, 8, 15, 0, 6, 5, 6, 14, 4, 4, 10, 8, 8, 12, 15, 12, 0, 11, 3, 10, 15, 3, 14, 3, 15, 3, 12, 3, 13, 4, 8, 6, 9, 6, 0, 16},
|
||||
[]byte{0, 2},
|
||||
[]byte{0, 2, 1},
|
||||
[]byte{0, 2, 1, 15, 14, 3, 3, 6, 0, 11, 10, 8, 12, 0, 2, 14, 1, 9, 4, 15, 8, 14, 7, 15, 10, 12, 13, 14, 11, 9, 0, 8, 8, 11, 3, 12, 15, 4, 3, 3, 11, 6, 4, 9, 8, 11, 13, 6, 9, 0, 0, 13, 5, 0, 13, 15, 0, 2, 6, 6, 15, 15, 14, 3, 16},
|
||||
[]byte{0, 2, 8},
|
||||
[]byte{0, 2, 8, 14, 6, 2, 12, 11, 4, 6, 6, 5, 15, 12, 14, 1, 9, 10, 14, 1, 15, 12, 1, 3, 10, 6, 0, 4, 6, 1, 8, 13, 7, 13, 2, 0, 11, 14, 0, 3, 7, 15, 12, 6, 8, 11, 6, 3, 11, 14, 11, 3, 3, 8, 4, 13, 15, 10, 5, 10, 11, 7, 7, 6, 16},
|
||||
[]byte{0, 2, 12},
|
||||
[]byte{0, 2, 12, 11, 5, 1, 7, 6, 7, 3, 5, 4, 14, 1, 15, 14, 6, 11, 13, 4, 10, 4, 9, 11, 6, 4, 11, 3, 7, 2, 1, 15, 15, 13, 13, 11, 12, 9, 5, 15, 14, 13, 1, 11, 8, 14, 10, 13, 0, 0, 5, 12, 3, 9, 11, 11, 12, 0, 7, 11, 12, 4, 13, 8, 16},
|
||||
[]byte{0, 3},
|
||||
[]byte{0, 3, 0, 8, 9, 14, 0, 1, 11, 14, 9, 14, 11, 2, 10, 15, 5, 15, 15, 5, 15, 10, 1, 12, 5, 9, 8, 3, 12, 6, 12, 6, 15, 11, 7, 8, 13, 13, 7, 3, 4, 6, 5, 8, 13, 1, 15, 8, 15, 1, 1, 13, 4, 15, 8, 13, 2, 7, 10, 2, 3, 15, 13, 5, 16},
|
||||
[]byte{0, 4},
|
||||
[]byte{0, 4, 2, 4, 2, 9, 5, 4, 10, 5, 12, 11, 9, 7, 4, 8, 13, 3, 15, 6, 6, 11, 12, 13, 4, 5, 8, 3, 15, 13, 3, 8, 3, 0, 2, 8, 7, 10, 10, 5, 8, 5, 11, 14, 11, 13, 9, 13, 13, 0, 6, 15, 10, 6, 6, 2, 5, 9, 7, 6, 11, 14, 4, 9, 16},
|
||||
[]byte{0, 6},
|
||||
[]byte{0, 6, 3},
|
||||
[]byte{0, 6, 3, 3, 9, 9, 3, 5, 1, 1, 1, 11, 4, 10, 5, 6, 3, 10, 2, 8, 10, 9, 1, 12, 2, 5, 3, 11, 6, 3, 8, 10, 15, 8, 6, 8, 11, 3, 10, 15, 7, 12, 3, 7, 2, 12, 10, 11, 4, 9, 7, 12, 10, 12, 4, 15, 6, 12, 11, 2, 12, 0, 10, 10, 16},
|
||||
[]byte{0, 6, 13},
|
||||
[]byte{0, 6, 13, 9, 14, 4, 11, 9, 10, 11, 12, 0, 11, 8, 9, 7, 8, 1, 2, 0, 13, 4, 5, 1, 14, 11, 4, 12, 12, 10, 4, 15, 7, 2, 15, 15, 1, 13, 9, 7, 3, 2, 1, 7, 1, 3, 14, 0, 14, 15, 3, 7, 9, 10, 1, 5, 7, 11, 8, 15, 2, 11, 6, 0, 16},
|
||||
[]byte{0, 7},
|
||||
[]byte{0, 7, 12, 5, 7, 7, 8, 0, 13, 11, 2, 13, 0, 11, 8, 1, 2, 5, 8, 10, 13, 3, 11, 14, 5, 13, 15, 2, 12, 3, 10, 9, 14, 8, 9, 14, 4, 12, 0, 6, 11, 15, 10, 13, 13, 12, 3, 10, 1, 15, 4, 14, 3, 11, 9, 4, 0, 1, 2, 1, 5, 9, 4, 7, 16},
|
||||
[]byte{0, 8},
|
||||
[]byte{0, 8, 7},
|
||||
[]byte{0, 8, 7, 15, 11, 1, 0, 8, 14, 6, 8, 3, 6, 10, 0, 8, 8, 14, 0, 6, 1, 5, 6, 11, 1, 10, 2, 6, 2, 1, 0, 13, 1, 15, 5, 2, 8, 4, 2, 9, 6, 11, 3, 0, 11, 0, 11, 11, 0, 11, 3, 13, 1, 12, 2, 10, 7, 14, 0, 1, 10, 12, 1, 1, 16},
|
||||
[]byte{0, 8, 11},
|
||||
[]byte{0, 8, 11, 3, 15, 9, 10, 9, 6, 11, 10, 11, 10, 1, 2, 15, 4, 7, 4, 3, 0, 15, 2, 11, 0, 14, 2, 8, 5, 1, 15, 4, 0, 7, 14, 8, 12, 10, 3, 5, 5, 11, 11, 8, 10, 9, 10, 6, 9, 2, 4, 2, 11, 12, 9, 9, 10, 14, 12, 12, 2, 12, 15, 3, 16},
|
||||
[]byte{0, 9},
|
||||
[]byte{0, 9, 9},
|
||||
[]byte{0, 9, 9, 9, 15, 1, 8, 13, 14, 7, 7, 14, 9, 4, 5, 1, 8, 6, 7, 12, 11, 1, 9, 3, 5, 15, 9, 10, 12, 13, 5, 6, 15, 7, 9, 12, 11, 12, 1, 1, 13, 0, 4, 8, 2, 6, 12, 3, 13, 10, 6, 11, 4, 2, 0, 10, 4, 15, 4, 11, 11, 14, 2, 1, 16},
|
||||
[]byte{0, 9, 10},
|
||||
[]byte{0, 9, 10, 15, 9, 14, 7, 14, 10, 2, 3, 7, 0, 10, 11, 3, 14, 3, 14, 14, 7, 15, 0, 10, 4, 6, 5, 10, 7, 13, 10, 12, 11, 6, 12, 9, 11, 7, 14, 6, 5, 1, 9, 6, 13, 12, 4, 9, 6, 13, 5, 5, 7, 0, 10, 0, 13, 8, 0, 2, 0, 11, 13, 10, 16},
|
||||
[]byte{0, 12},
|
||||
[]byte{0, 12, 3, 10, 3, 12, 9, 9, 15, 3, 4, 10, 15, 14, 9, 13, 2, 12, 8, 12, 14, 12, 12, 9, 0, 5, 2, 4, 14, 15, 6, 3, 10, 15, 12, 9, 15, 12, 1, 3, 3, 8, 4, 13, 5, 13, 9, 3, 1, 2, 8, 1, 15, 4, 1, 4, 13, 5, 13, 4, 8, 7, 12, 0, 16},
|
||||
[]byte{0, 13},
|
||||
[]byte{0, 13, 2, 1, 14, 11, 4, 15, 7, 12, 2, 0, 2, 14, 14, 12, 12, 13, 6, 13, 8, 7, 6, 2, 7, 15, 3, 13, 5, 1, 2, 14, 6, 3, 0, 13, 4, 13, 0, 5, 5, 7, 8, 5, 8, 5, 8, 4, 7, 1, 6, 8, 7, 5, 8, 15, 13, 1, 10, 10, 14, 13, 2, 2, 16},
|
||||
[]byte{0, 14},
|
||||
[]byte{0, 14, 8, 2, 7, 1, 10, 4, 4, 12, 6, 3, 4, 11, 7, 15, 14, 13, 12, 13, 0, 0, 12, 11, 0, 9, 10, 15, 14, 10, 2, 10, 7, 0, 10, 12, 8, 3, 8, 0, 11, 6, 11, 15, 5, 15, 6, 1, 15, 15, 0, 7, 14, 7, 9, 3, 14, 14, 3, 15, 6, 13, 4, 12, 16},
|
||||
[]byte{1},
|
||||
[]byte{1, 2},
|
||||
[]byte{1, 2, 5},
|
||||
[]byte{1, 2, 5, 10, 13, 12, 6, 7, 14, 15, 14, 8, 11, 15, 6, 8, 0, 8, 12, 0, 2, 11, 13, 3, 10, 14, 2, 0, 2, 6, 2, 9, 5, 3, 11, 5, 14, 4, 5, 13, 10, 11, 4, 14, 11, 9, 3, 8, 6, 4, 4, 1, 12, 15, 6, 14, 12, 7, 3, 8, 1, 8, 4, 4, 16},
|
||||
[]byte{1, 2, 7},
|
||||
[]byte{1, 2, 7, 14, 12, 7, 0, 14, 10, 0, 13, 8, 10, 7, 11, 6, 2, 4, 4, 10, 14, 7, 13, 9, 5, 1, 11, 2, 2, 0, 4, 15, 7, 5, 3, 3, 6, 12, 15, 2, 1, 15, 4, 9, 13, 15, 6, 3, 7, 0, 10, 11, 9, 2, 0, 5, 3, 4, 12, 9, 5, 7, 2, 8, 16},
|
||||
[]byte{1, 3},
|
||||
[]byte{1, 3, 1},
|
||||
[]byte{1, 3, 1, 8, 10, 4, 12, 2, 11, 12, 7, 3, 1, 7, 1, 8, 8, 5, 7, 2, 3, 8, 14, 12, 2, 12, 4, 2, 14, 4, 10, 9, 5, 12, 0, 10, 14, 11, 7, 2, 9, 0, 10, 6, 0, 12, 8, 10, 11, 11, 1, 1, 0, 12, 2, 14, 6, 3, 8, 3, 4, 1, 12, 2, 16},
|
||||
[]byte{1, 3, 11},
|
||||
[]byte{1, 3, 11, 8, 15, 5, 7, 5, 0, 9, 6, 1, 11, 5, 5, 8, 8, 11, 12, 6, 9, 15, 11, 13, 0, 11, 7, 0, 1, 4, 6, 1, 8, 5, 4, 14, 1, 1, 0, 15, 13, 7, 8, 12, 1, 4, 7, 6, 7, 5, 1, 5, 11, 13, 13, 8, 8, 2, 7, 2, 5, 9, 7, 5, 16},
|
||||
[]byte{1, 4},
|
||||
[]byte{1, 4, 6, 8, 2, 8, 8, 0, 5, 6, 3, 1, 0, 12, 8, 2, 10, 10, 4, 12, 0, 1, 10, 7, 14, 1, 2, 10, 1, 0, 15, 8, 1, 1, 1, 10, 0, 5, 6, 0, 14, 7, 2, 11, 7, 0, 0, 5, 5, 5, 4, 7, 9, 0, 3, 1, 11, 8, 6, 12, 3, 5, 7, 13, 16},
|
||||
[]byte{1, 5},
|
||||
[]byte{1, 5, 11},
|
||||
[]byte{1, 5, 11, 3, 8, 1, 11, 5, 1, 8, 12, 6, 11, 7, 5, 4, 1, 8, 5, 13, 6, 9, 0, 3, 12, 10, 15, 1, 7, 11, 4, 15, 8, 13, 12, 3, 0, 11, 10, 11, 15, 14, 13, 15, 8, 0, 7, 2, 11, 1, 1, 8, 11, 11, 12, 3, 14, 14, 12, 3, 0, 1, 3, 15, 16},
|
||||
[]byte{1, 5, 12},
|
||||
[]byte{1, 5, 12, 5, 3, 12, 5, 8, 2, 2, 8, 4, 14, 12, 9, 3, 0, 7, 5, 0, 8, 4, 11, 10, 14, 0, 5, 3, 6, 11, 5, 10, 11, 7, 10, 14, 4, 4, 10, 4, 4, 14, 14, 2, 7, 1, 8, 4, 8, 9, 11, 7, 2, 11, 14, 3, 10, 10, 7, 8, 12, 3, 12, 7, 16},
|
||||
[]byte{1, 5, 15},
|
||||
[]byte{1, 5, 15, 14, 15, 14, 8, 6, 1, 3, 10, 1, 14, 6, 7, 3, 5, 6, 7, 10, 10, 12, 8, 3, 2, 9, 4, 15, 10, 0, 13, 10, 6, 13, 0, 4, 8, 14, 5, 12, 7, 6, 4, 2, 2, 2, 7, 0, 1, 7, 4, 4, 1, 12, 9, 15, 8, 9, 9, 15, 14, 13, 1, 11, 16},
|
||||
[]byte{1, 6},
|
||||
[]byte{1, 6, 2, 3, 8, 6, 11, 14, 0, 10, 5, 2, 5, 12, 5, 10, 9, 14, 6, 1, 1, 0, 12, 7, 2, 4, 4, 10, 3, 7, 5, 0, 3, 8, 12, 5, 2, 5, 15, 14, 1, 0, 2, 13, 15, 2, 2, 4, 2, 8, 6, 1, 6, 1, 11, 1, 2, 8, 9, 11, 12, 7, 1, 6, 16},
|
||||
[]byte{1, 8},
|
||||
[]byte{1, 8, 13, 12, 13, 4, 3, 5, 11, 15, 7, 13, 1, 8, 2, 0, 0, 8, 5, 15, 6, 12, 4, 6, 13, 5, 8, 7, 12, 10, 14, 6, 6, 9, 12, 10, 7, 12, 2, 13, 3, 10, 13, 4, 12, 14, 10, 9, 13, 11, 3, 2, 0, 10, 0, 11, 3, 12, 8, 11, 13, 2, 1, 13, 16},
|
||||
[]byte{1, 10},
|
||||
[]byte{1, 10, 6, 13, 9, 6, 7, 4, 10, 14, 12, 5, 12, 8, 3, 2, 9, 2, 5, 2, 12, 11, 6, 3, 4, 0, 2, 2, 3, 0, 8, 11, 15, 4, 12, 9, 8, 14, 7, 0, 14, 13, 14, 12, 6, 1, 3, 13, 9, 2, 5, 10, 11, 7, 8, 1, 4, 8, 3, 4, 4, 5, 10, 4, 16},
|
||||
[]byte{1, 13},
|
||||
[]byte{1, 13, 5, 0, 1, 3, 1, 11, 14, 8, 6, 8, 13, 14, 2, 7, 4, 1, 12, 11, 7, 7, 5, 13, 0, 15, 15, 8, 0, 0, 6, 3, 1, 15, 9, 6, 0, 6, 5, 15, 4, 0, 11, 6, 0, 8, 4, 5, 11, 12, 14, 7, 2, 14, 7, 8, 2, 7, 1, 8, 10, 15, 2, 3, 16},
|
||||
[]byte{1, 14},
|
||||
[]byte{1, 14, 2},
|
||||
[]byte{1, 14, 2, 2, 7, 3, 3, 15, 1, 7, 3, 15, 11, 12, 9, 5, 15, 10, 0, 7, 9, 14, 13, 5, 0, 14, 12, 2, 4, 12, 4, 9, 8, 10, 8, 10, 10, 13, 2, 5, 1, 5, 13, 8, 2, 7, 14, 5, 15, 15, 8, 2, 0, 0, 12, 2, 4, 0, 14, 9, 12, 13, 12, 9, 16},
|
||||
[]byte{1, 14, 11},
|
||||
[]byte{1, 14, 11, 15, 13, 7, 13, 11, 11, 6, 8, 0, 4, 3, 5, 1, 8, 0, 4, 4, 4, 3, 13, 15, 0, 1, 10, 4, 8, 2, 14, 6, 4, 5, 1, 9, 1, 2, 11, 8, 8, 4, 12, 13, 2, 6, 11, 3, 1, 5, 0, 4, 11, 11, 7, 7, 11, 11, 14, 12, 9, 8, 6, 2, 16},
|
||||
[]byte{1, 15},
|
||||
[]byte{1, 15, 9},
|
||||
[]byte{1, 15, 9, 9, 10, 15, 2, 13, 15, 2, 13, 10, 9, 12, 0, 1, 7, 6, 11, 13, 11, 3, 14, 9, 9, 5, 11, 13, 15, 10, 4, 7, 15, 15, 11, 15, 14, 6, 10, 3, 10, 10, 12, 15, 8, 14, 5, 4, 4, 0, 1, 15, 4, 13, 10, 12, 2, 14, 12, 14, 9, 3, 3, 8, 16},
|
||||
[]byte{1, 15, 15},
|
||||
[]byte{1, 15, 15, 15, 15, 1, 10, 4, 5, 5, 11, 6, 6, 13, 5, 2, 1, 0, 7, 10, 2, 6, 2, 3, 1, 15, 14, 14, 15, 11, 0, 15, 3, 5, 6, 5, 0, 6, 7, 14, 9, 5, 4, 4, 12, 15, 9, 4, 7, 0, 13, 9, 7, 5, 15, 0, 1, 1, 1, 1, 11, 1, 12, 15, 16},
|
||||
[]byte{2},
|
||||
[]byte{2, 0},
|
||||
[]byte{2, 0, 9},
|
||||
[]byte{2, 0, 9, 2, 11, 5, 6, 0, 2, 1, 2, 1, 12, 12, 4, 8, 4, 15, 10, 5, 5, 11, 9, 0, 12, 14, 10, 0, 11, 14, 1, 7, 13, 9, 3, 1, 1, 8, 4, 2, 6, 3, 9, 2, 5, 10, 8, 6, 4, 14, 0, 13, 5, 13, 4, 3, 10, 2, 0, 13, 6, 7, 11, 0, 16},
|
||||
[]byte{2, 0, 14},
|
||||
[]byte{2, 0, 14, 11, 15, 14, 15, 4, 3, 6, 3, 9, 2, 1, 5, 10, 14, 11, 3, 5, 14, 1, 14, 0, 0, 11, 12, 9, 6, 1, 7, 4, 15, 5, 2, 1, 5, 5, 10, 15, 11, 7, 8, 1, 6, 5, 9, 15, 3, 4, 6, 2, 8, 13, 1, 15, 3, 15, 7, 10, 14, 0, 1, 8, 16},
|
||||
[]byte{2, 1},
|
||||
[]byte{2, 1, 1},
|
||||
[]byte{2, 1, 1, 2, 0, 14, 1, 11, 14, 0, 3, 13, 3, 8, 4, 14, 14, 3, 2, 10, 9, 11, 13, 7, 2, 6, 8, 5, 7, 8, 13, 8, 8, 2, 9, 15, 2, 7, 1, 5, 4, 0, 12, 8, 4, 8, 12, 9, 7, 10, 4, 9, 5, 9, 9, 0, 11, 12, 4, 8, 15, 5, 8, 2, 16},
|
||||
[]byte{2, 1, 3},
|
||||
[]byte{2, 1, 3, 9, 15, 10, 1, 10, 10, 10, 3, 13, 6, 0, 14, 5, 3, 13, 0, 7, 0, 13, 5, 10, 1, 15, 1, 10, 12, 9, 12, 8, 2, 1, 1, 15, 4, 1, 11, 2, 13, 13, 5, 10, 1, 8, 1, 3, 4, 1, 6, 12, 8, 4, 4, 7, 10, 7, 7, 5, 9, 5, 5, 7, 16},
|
||||
[]byte{2, 1, 14},
|
||||
[]byte{2, 1, 14, 10, 8, 11, 13, 15, 8, 10, 4, 14, 10, 6, 13, 12, 9, 14, 2, 0, 4, 5, 9, 1, 13, 8, 8, 12, 3, 11, 5, 11, 1, 9, 5, 3, 3, 13, 3, 3, 11, 15, 11, 12, 5, 9, 12, 0, 8, 12, 12, 10, 2, 6, 6, 12, 3, 12, 8, 7, 10, 9, 6, 0, 16},
|
||||
[]byte{2, 5},
|
||||
[]byte{2, 5, 8, 4, 8, 7, 15, 1, 13, 4, 8, 9, 4, 5, 12, 7, 7, 4, 3, 12, 4, 1, 2, 11, 0, 15, 0, 2, 6, 13, 7, 2, 2, 10, 4, 6, 4, 1, 13, 5, 9, 7, 8, 15, 1, 1, 10, 0, 11, 4, 4, 13, 11, 15, 7, 12, 1, 13, 2, 7, 4, 13, 4, 1, 16},
|
||||
[]byte{2, 6},
|
||||
[]byte{2, 6, 13, 11, 12, 12, 14, 1, 11, 5, 9, 9, 14, 11, 14, 13, 4, 6, 14, 2, 5, 6, 9, 5, 7, 9, 5, 6, 2, 0, 3, 1, 2, 5, 5, 14, 10, 9, 10, 1, 12, 1, 12, 5, 7, 5, 15, 13, 13, 13, 11, 0, 0, 0, 3, 15, 4, 13, 3, 8, 9, 1, 6, 5, 16},
|
||||
[]byte{2, 9},
|
||||
[]byte{2, 9, 1},
|
||||
[]byte{2, 9, 1, 11, 6, 11, 11, 12, 10, 8, 7, 9, 13, 6, 8, 4, 3, 3, 7, 14, 14, 5, 14, 2, 11, 12, 10, 5, 13, 1, 8, 12, 15, 11, 2, 13, 3, 11, 7, 10, 9, 7, 12, 8, 1, 8, 7, 14, 7, 0, 3, 3, 0, 9, 5, 6, 4, 2, 8, 0, 2, 9, 5, 14, 16},
|
||||
[]byte{2, 9, 7},
|
||||
[]byte{2, 9, 7, 13, 3, 10, 12, 15, 15, 11, 9, 4, 2, 12, 7, 14, 6, 15, 3, 15, 11, 0, 2, 9, 11, 7, 3, 5, 3, 3, 8, 10, 12, 3, 4, 14, 3, 9, 12, 4, 12, 14, 9, 14, 8, 5, 2, 15, 6, 4, 13, 5, 0, 15, 11, 5, 7, 12, 12, 9, 7, 14, 12, 0, 16},
|
||||
[]byte{2, 11},
|
||||
[]byte{2, 11, 7},
|
||||
[]byte{2, 11, 7, 10, 15, 11, 11, 1, 4, 11, 4, 12, 9, 0, 2, 15, 3, 7, 1, 6, 3, 11, 1, 5, 15, 7, 0, 15, 14, 8, 3, 3, 5, 13, 14, 12, 4, 14, 2, 6, 15, 11, 10, 14, 4, 7, 1, 8, 12, 0, 3, 15, 1, 9, 13, 10, 5, 10, 14, 12, 11, 14, 8, 11, 16},
|
||||
[]byte{2, 11, 13},
|
||||
[]byte{2, 11, 13, 9, 10, 14, 11, 13, 14, 4, 4, 7, 9, 4, 14, 6, 13, 11, 3, 1, 7, 11, 14, 6, 13, 8, 3, 12, 5, 10, 2, 6, 6, 14, 1, 10, 9, 6, 14, 1, 8, 14, 0, 4, 11, 12, 7, 0, 7, 3, 9, 9, 8, 11, 11, 7, 7, 9, 12, 15, 14, 2, 15, 14, 16},
|
||||
[]byte{2, 13},
|
||||
[]byte{2, 13, 1},
|
||||
[]byte{2, 13, 1, 5, 14, 1, 14, 8, 2, 12, 10, 5, 0, 11, 7, 3, 3, 4, 11, 14, 8, 9, 9, 0, 11, 9, 3, 10, 8, 11, 0, 4, 3, 14, 7, 7, 1, 3, 4, 0, 12, 12, 9, 3, 9, 8, 11, 10, 10, 2, 3, 8, 4, 5, 7, 6, 3, 12, 6, 9, 6, 13, 2, 2, 16},
|
||||
[]byte{2, 13, 15},
|
||||
[]byte{2, 13, 15, 3, 7, 8, 14, 8, 14, 12, 14, 14, 7, 8, 5, 14, 1, 13, 6, 5, 2, 0, 0, 13, 7, 3, 8, 1, 7, 8, 4, 3, 2, 12, 11, 12, 9, 10, 13, 5, 5, 12, 4, 9, 14, 10, 5, 10, 15, 9, 0, 5, 6, 2, 9, 13, 3, 4, 8, 4, 1, 6, 12, 2, 16},
|
||||
[]byte{2, 15},
|
||||
[]byte{2, 15, 1, 11, 6, 10, 8, 15, 2, 2, 8, 6, 7, 5, 10, 1, 7, 1, 1, 2, 6, 13, 1, 7, 8, 1, 10, 14, 11, 5, 2, 7, 5, 6, 13, 6, 15, 14, 5, 6, 8, 5, 10, 15, 8, 12, 7, 14, 12, 2, 3, 13, 12, 8, 1, 8, 7, 13, 7, 8, 3, 13, 1, 15, 16},
|
||||
[]byte{3},
|
||||
[]byte{3, 0},
|
||||
[]byte{3, 0, 0},
|
||||
[]byte{3, 0, 0, 13, 2, 13, 11, 14, 8, 3, 10, 6, 11, 10, 7, 15, 13, 7, 5, 7, 3, 7, 12, 8, 13, 7, 4, 5, 3, 13, 9, 8, 4, 14, 7, 9, 3, 8, 11, 10, 7, 10, 14, 1, 1, 3, 13, 3, 13, 10, 2, 10, 13, 7, 4, 3, 3, 0, 6, 1, 1, 5, 7, 11, 16},
|
||||
[]byte{3, 0, 1},
|
||||
[]byte{3, 0, 1, 9, 12, 0, 10, 9, 1, 11, 10, 3, 0, 13, 3, 4, 6, 10, 5, 5, 8, 9, 0, 11, 1, 11, 0, 7, 2, 8, 7, 13, 8, 10, 10, 14, 3, 5, 11, 10, 10, 8, 12, 4, 0, 6, 8, 14, 15, 8, 15, 1, 13, 14, 6, 6, 0, 8, 4, 10, 12, 10, 7, 5, 16},
|
||||
[]byte{3, 2},
|
||||
[]byte{3, 2, 3},
|
||||
[]byte{3, 2, 3, 14, 3, 9, 3, 7, 7, 4, 14, 14, 14, 12, 8, 14, 9, 13, 5, 9, 6, 2, 5, 8, 2, 6, 7, 13, 0, 1, 3, 3, 10, 5, 11, 2, 15, 0, 1, 12, 5, 6, 7, 8, 2, 2, 10, 4, 15, 15, 0, 1, 8, 4, 8, 8, 6, 7, 1, 14, 12, 11, 6, 14, 16},
|
||||
[]byte{3, 2, 15},
|
||||
[]byte{3, 2, 15, 12, 4, 15, 13, 3, 15, 12, 8, 3, 6, 12, 6, 13, 11, 0, 0, 5, 8, 15, 13, 2, 0, 15, 15, 7, 14, 8, 12, 10, 6, 1, 1, 8, 8, 5, 14, 11, 7, 2, 1, 5, 11, 3, 9, 15, 9, 7, 13, 2, 11, 4, 14, 7, 9, 7, 13, 12, 10, 2, 5, 4, 16},
|
||||
[]byte{3, 3},
|
||||
[]byte{3, 3, 1, 13, 9, 9, 12, 6, 11, 14, 12, 3, 10, 14, 12, 11, 14, 12, 9, 6, 2, 11, 14, 7, 4, 11, 2, 5, 4, 4, 8, 5, 1, 1, 9, 8, 3, 11, 0, 1, 3, 12, 0, 8, 7, 6, 15, 6, 15, 4, 14, 6, 0, 2, 9, 7, 7, 3, 13, 15, 10, 13, 6, 1, 16},
|
||||
[]byte{3, 4},
|
||||
[]byte{3, 4, 2},
|
||||
[]byte{3, 4, 2, 7, 5, 12, 3, 1, 3, 12, 5, 2, 8, 6, 3, 1, 7, 7, 9, 4, 15, 0, 1, 5, 4, 15, 8, 14, 4, 15, 15, 10, 12, 15, 12, 8, 0, 13, 9, 13, 0, 12, 5, 11, 1, 8, 4, 13, 2, 4, 8, 2, 14, 7, 15, 9, 2, 1, 1, 15, 15, 12, 3, 14, 16},
|
||||
[]byte{3, 4, 4},
|
||||
[]byte{3, 4, 4, 4, 7, 10, 15, 11, 6, 8, 6, 11, 4, 0, 7, 4, 13, 3, 11, 9, 3, 11, 9, 9, 0, 7, 6, 10, 6, 0, 11, 5, 15, 5, 10, 9, 0, 2, 15, 10, 3, 2, 13, 15, 1, 8, 13, 8, 5, 15, 12, 1, 13, 1, 3, 10, 13, 10, 8, 12, 13, 11, 7, 1, 16},
|
||||
[]byte{3, 4, 5},
|
||||
[]byte{3, 4, 5, 6, 2, 14, 3, 10, 12, 14, 6, 0, 8, 11, 13, 13, 7, 5, 10, 1, 0, 14, 11, 1, 5, 3, 12, 11, 12, 2, 12, 0, 0, 14, 6, 9, 11, 9, 3, 5, 13, 4, 2, 15, 5, 7, 12, 1, 9, 3, 12, 3, 8, 14, 15, 6, 13, 6, 7, 4, 10, 11, 10, 12, 16},
|
||||
[]byte{3, 6},
|
||||
[]byte{3, 6, 11, 3, 0, 9, 6, 12, 9, 1, 2, 10, 13, 12, 7, 6, 7, 4, 12, 10, 9, 2, 11, 6, 8, 13, 13, 11, 3, 11, 0, 4, 9, 4, 14, 9, 11, 9, 8, 8, 15, 11, 14, 15, 1, 11, 14, 13, 7, 9, 3, 8, 14, 8, 15, 10, 12, 4, 12, 2, 13, 15, 7, 10, 16},
|
||||
[]byte{3, 8},
|
||||
[]byte{3, 8, 4, 0, 1, 11, 4, 14, 9, 7, 14, 6, 7, 12, 4, 10, 6, 13, 8, 0, 9, 5, 9, 7, 9, 11, 4, 12, 1, 14, 12, 11, 9, 14, 10, 15, 5, 7, 2, 6, 15, 12, 8, 10, 1, 2, 7, 9, 8, 9, 7, 5, 10, 7, 6, 5, 3, 14, 9, 8, 0, 8, 7, 2, 16},
|
||||
[]byte{3, 9},
|
||||
[]byte{3, 9, 12, 8, 11, 11, 9, 2, 2, 2, 7, 11, 10, 9, 1, 10, 2, 6, 5, 7, 15, 2, 9, 12, 5, 4, 9, 8, 15, 5, 12, 5, 11, 0, 7, 10, 14, 3, 6, 3, 6, 9, 12, 8, 13, 9, 2, 8, 3, 4, 4, 4, 15, 4, 7, 7, 9, 3, 0, 12, 7, 9, 11, 14, 16},
|
||||
[]byte{3, 10},
|
||||
[]byte{3, 10, 2},
|
||||
[]byte{3, 10, 2, 12, 7, 13, 5, 1, 6, 4, 15, 6, 10, 1, 13, 8, 12, 11, 12, 5, 13, 9, 14, 2, 2, 8, 2, 5, 3, 14, 10, 14, 4, 10, 6, 6, 13, 8, 11, 0, 13, 5, 5, 0, 13, 0, 7, 12, 5, 3, 14, 12, 8, 4, 13, 4, 7, 14, 13, 1, 7, 1, 7, 2, 16},
|
||||
[]byte{3, 10, 8},
|
||||
[]byte{3, 10, 8, 2, 14, 1, 14, 5, 8, 10, 14, 6, 15, 1, 4, 15, 11, 11, 14, 11, 3, 5, 11, 6, 13, 8, 3, 3, 3, 3, 0, 12, 4, 15, 11, 5, 11, 3, 12, 11, 7, 7, 0, 3, 9, 1, 15, 5, 12, 12, 3, 4, 0, 9, 4, 9, 12, 6, 2, 5, 4, 14, 8, 3, 16},
|
||||
[]byte{3, 10, 12},
|
||||
[]byte{3, 10, 12, 3, 15, 14, 8, 4, 12, 6, 6, 3, 6, 0, 7, 14, 11, 11, 14, 0, 1, 12, 6, 11, 0, 0, 8, 13, 0, 2, 11, 9, 2, 14, 13, 4, 15, 14, 10, 11, 2, 6, 14, 13, 8, 1, 7, 1, 0, 1, 4, 8, 5, 3, 12, 0, 15, 9, 4, 1, 9, 12, 12, 8, 16},
|
||||
[]byte{3, 11},
|
||||
[]byte{3, 11, 10, 5, 10, 12, 7, 0, 10, 1, 8, 3, 9, 9, 8, 1, 7, 12, 12, 11, 14, 8, 11, 13, 4, 13, 9, 12, 7, 8, 1, 1, 5, 1, 3, 6, 12, 12, 6, 1, 6, 9, 9, 13, 5, 1, 10, 15, 8, 7, 6, 0, 8, 10, 15, 5, 2, 0, 2, 2, 6, 12, 3, 2, 16},
|
||||
[]byte{3, 12},
|
||||
[]byte{3, 12, 9, 11, 13, 2, 6, 8, 10, 14, 13, 12, 8, 13, 11, 11, 3, 6, 13, 11, 0, 10, 4, 6, 6, 4, 14, 1, 7, 11, 8, 3, 10, 11, 12, 15, 13, 8, 7, 14, 4, 0, 4, 9, 0, 1, 14, 14, 14, 7, 11, 13, 5, 7, 0, 4, 10, 9, 5, 0, 6, 4, 14, 14, 16},
|
||||
[]byte{3, 13},
|
||||
[]byte{3, 13, 10, 0, 6, 10, 6, 7, 14, 7, 15, 14, 14, 9, 12, 9, 3, 8, 1, 5, 5, 12, 5, 0, 14, 6, 12, 14, 12, 9, 13, 10, 7, 0, 11, 6, 6, 6, 7, 9, 14, 7, 7, 7, 13, 10, 6, 15, 0, 2, 1, 4, 9, 12, 6, 6, 7, 4, 12, 13, 9, 1, 0, 5, 16},
|
||||
[]byte{3, 14},
|
||||
[]byte{3, 14, 4},
|
||||
[]byte{3, 14, 4, 0, 0, 15, 10, 3, 2, 6, 9, 8, 4, 9, 13, 14, 12, 0, 12, 11, 15, 4, 14, 13, 11, 13, 6, 6, 3, 6, 5, 7, 12, 7, 3, 11, 13, 12, 8, 12, 9, 7, 12, 0, 7, 10, 10, 1, 6, 6, 13, 13, 8, 11, 4, 9, 15, 0, 11, 1, 4, 0, 2, 8, 16},
|
||||
[]byte{3, 14, 9},
|
||||
[]byte{3, 14, 9, 10, 6, 3, 7, 12, 5, 8, 9, 8, 11, 7, 0, 5, 0, 6, 10, 3, 4, 7, 10, 14, 7, 11, 5, 7, 6, 8, 13, 1, 10, 8, 4, 0, 2, 2, 15, 9, 7, 0, 2, 14, 8, 2, 6, 8, 14, 8, 10, 5, 11, 10, 13, 14, 8, 1, 9, 4, 13, 13, 4, 7, 16},
|
||||
[]byte{3, 14, 14},
|
||||
[]byte{3, 14, 14, 10},
|
||||
[]byte{3, 14, 14, 10, 7, 14, 8, 14, 2, 12, 10, 3, 14, 3, 8, 5, 15, 14, 3, 9, 13, 6, 0, 5, 0, 8, 6, 11, 0, 4, 9, 11, 9, 9, 13, 15, 1, 10, 13, 10, 11, 8, 5, 10, 1, 12, 6, 5, 6, 9, 8, 7, 3, 4, 2, 4, 15, 4, 8, 8, 12, 5, 10, 13, 16},
|
||||
[]byte{3, 14, 14, 15},
|
||||
[]byte{3, 14, 14, 15, 5, 10, 1, 14, 12, 6, 5, 14, 8, 10, 14, 1, 12, 8, 7, 11, 14, 5, 14, 13, 12, 4, 5, 0, 9, 9, 10, 12, 9, 14, 7, 7, 8, 3, 13, 4, 11, 8, 0, 7, 5, 8, 1, 0, 11, 10, 6, 8, 8, 14, 11, 4, 7, 9, 14, 7, 10, 7, 3, 0, 16},
|
||||
[]byte{4},
|
||||
[]byte{4, 0},
|
||||
[]byte{4, 0, 6},
|
||||
[]byte{4, 0, 6, 3, 7, 10, 5, 2, 9, 3, 2, 0, 13, 10, 12, 14, 5, 4, 7, 6, 3, 12, 2, 14, 6, 10, 12, 5, 2, 12, 5, 2, 2, 12, 8, 10, 4, 4, 6, 11, 10, 9, 11, 6, 15, 5, 4, 13, 10, 15, 8, 4, 12, 0, 14, 4, 4, 2, 1, 2, 4, 11, 9, 3, 16},
|
||||
[]byte{4, 0, 15},
|
||||
[]byte{4, 0, 15, 8, 5, 12, 11, 8, 1, 3, 6, 14, 9, 5, 2, 3, 8, 12, 14, 10, 4, 12, 11, 9, 5, 1, 10, 2, 14, 14, 6, 4, 5, 10, 4, 9, 9, 8, 12, 1, 0, 8, 8, 3, 1, 13, 5, 10, 11, 14, 1, 13, 8, 15, 4, 8, 6, 9, 6, 8, 6, 4, 12, 3, 16},
|
||||
[]byte{4, 1},
|
||||
[]byte{4, 1, 3, 5, 1, 11, 9, 5, 8, 11, 14, 1, 14, 9, 5, 12, 13, 12, 3, 7, 15, 7, 13, 2, 13, 6, 5, 4, 3, 1, 5, 14, 3, 3, 15, 15, 7, 15, 4, 5, 11, 10, 12, 9, 1, 7, 9, 15, 9, 2, 4, 2, 15, 13, 12, 8, 2, 8, 12, 8, 13, 2, 14, 3, 16},
|
||||
[]byte{4, 2},
|
||||
[]byte{4, 2, 1},
|
||||
[]byte{4, 2, 1, 13, 15, 1, 15, 10, 2, 5, 9, 2, 2, 1, 13, 0, 2, 10, 10, 4, 9, 5, 6, 14, 11, 0, 13, 3, 5, 10, 12, 14, 3, 1, 8, 12, 10, 2, 4, 12, 0, 10, 3, 3, 10, 6, 4, 12, 1, 10, 15, 9, 6, 12, 15, 6, 7, 12, 15, 2, 4, 5, 11, 6, 16},
|
||||
[]byte{4, 2, 11},
|
||||
[]byte{4, 2, 11, 4, 5, 13, 14, 6, 8, 5, 3, 13, 4, 0, 6, 7, 8, 3, 11, 6, 11, 5, 0, 12, 3, 7, 8, 11, 15, 11, 6, 1, 13, 6, 12, 14, 5, 2, 7, 1, 11, 3, 11, 15, 8, 1, 3, 12, 12, 2, 11, 9, 5, 9, 0, 5, 5, 15, 12, 1, 2, 15, 9, 8, 16},
|
||||
[]byte{4, 3},
|
||||
[]byte{4, 3, 9, 2, 6, 2, 9, 6, 10, 10, 3, 12, 8, 14, 15, 10, 11, 7, 14, 2, 15, 15, 9, 11, 12, 6, 4, 4, 2, 3, 6, 1, 9, 3, 15, 10, 6, 5, 7, 7, 2, 6, 1, 2, 7, 5, 5, 9, 11, 10, 0, 6, 6, 8, 7, 3, 4, 13, 1, 11, 2, 7, 9, 0, 16},
|
||||
[]byte{4, 5},
|
||||
[]byte{4, 5, 11, 0, 9, 3, 7, 11, 15, 14, 3, 9, 11, 0, 15, 13, 10, 13, 12, 10, 10, 8, 9, 7, 4, 13, 10, 15, 3, 2, 4, 1, 9, 3, 6, 2, 4, 11, 4, 7, 15, 4, 9, 1, 8, 2, 3, 4, 6, 4, 5, 8, 1, 9, 8, 2, 3, 13, 11, 14, 12, 0, 7, 15, 16},
|
||||
[]byte{4, 6},
|
||||
[]byte{4, 6, 15, 3, 15, 8, 12, 12, 4, 8, 6, 14, 8, 0, 4, 7, 5, 6, 7, 2, 1, 2, 12, 0, 15, 0, 1, 1, 12, 0, 6, 5, 4, 6, 6, 11, 12, 11, 7, 6, 6, 4, 7, 13, 12, 15, 8, 7, 13, 4, 2, 7, 5, 6, 13, 7, 15, 11, 11, 15, 12, 11, 4, 11, 16},
|
||||
[]byte{4, 7},
|
||||
[]byte{4, 7, 1, 7, 0, 3, 12, 5, 14, 13, 10, 8, 6, 4, 4, 10, 6, 4, 12, 14, 12, 1, 5, 2, 12, 5, 8, 15, 5, 10, 10, 12, 14, 12, 9, 3, 13, 7, 2, 15, 11, 0, 11, 15, 10, 7, 0, 5, 15, 0, 4, 7, 3, 15, 9, 0, 4, 3, 10, 8, 3, 5, 7, 12, 16},
|
||||
[]byte{4, 8},
|
||||
[]byte{4, 8, 9, 15, 14, 6, 8, 6, 5, 4, 7, 15, 4, 10, 9, 9, 9, 13, 2, 8, 1, 8, 10, 14, 13, 11, 12, 1, 8, 11, 7, 3, 5, 14, 13, 2, 12, 13, 5, 0, 2, 12, 3, 0, 1, 2, 4, 10, 0, 11, 8, 10, 15, 8, 6, 1, 11, 2, 2, 5, 1, 15, 9, 1, 16},
|
||||
[]byte{4, 11},
|
||||
[]byte{4, 11, 6},
|
||||
[]byte{4, 11, 6, 0, 2, 9, 7, 7, 3, 14, 7, 1, 7, 5, 15, 3, 2, 3, 9, 8, 4, 2, 2, 15, 13, 1, 8, 12, 6, 12, 11, 0, 9, 5, 14, 5, 2, 7, 8, 10, 12, 7, 11, 14, 4, 1, 12, 10, 4, 10, 5, 10, 6, 12, 0, 10, 6, 13, 13, 10, 1, 10, 7, 1, 16},
|
||||
[]byte{4, 11, 9},
|
||||
[]byte{4, 11, 9, 4, 5, 14, 15, 2, 14, 8, 12, 7, 8, 4, 8, 2, 11, 11, 15, 15, 12, 11, 13, 15, 4, 9, 2, 1, 12, 13, 3, 7, 5, 0, 6, 5, 14, 3, 11, 5, 0, 2, 4, 10, 3, 11, 14, 13, 4, 6, 9, 10, 9, 15, 3, 4, 11, 2, 14, 7, 7, 3, 14, 7, 16},
|
||||
[]byte{4, 11, 12},
|
||||
[]byte{4, 11, 12, 14, 4, 14, 0, 2, 9, 9, 14, 5, 3, 6, 2, 5, 7, 8, 10, 9, 5, 10, 2, 7, 11, 12, 11, 7, 7, 9, 11, 9, 10, 8, 9, 2, 3, 2, 2, 9, 6, 3, 8, 8, 13, 11, 8, 0, 3, 9, 0, 9, 6, 9, 6, 15, 9, 0, 6, 3, 5, 5, 8, 1, 16},
|
||||
[]byte{4, 14},
|
||||
[]byte{4, 14, 0, 9, 5, 5, 0, 13, 10, 9, 12, 10, 5, 5, 11, 10, 3, 7, 5, 14, 5, 6, 12, 5, 2, 5, 11, 4, 9, 11, 2, 7, 8, 1, 4, 13, 2, 0, 1, 6, 5, 5, 2, 8, 14, 4, 14, 7, 15, 3, 0, 9, 8, 7, 8, 2, 2, 1, 11, 2, 8, 7, 8, 11, 16},
|
||||
[]byte{5},
|
||||
[]byte{5, 0},
|
||||
[]byte{5, 0, 3},
|
||||
[]byte{5, 0, 3, 7, 11, 7, 1, 15, 0, 6, 3, 11, 15, 14, 6, 4, 7, 2, 3, 3, 15, 5, 7, 0, 10, 10, 0, 6, 6, 0, 2, 11, 1, 14, 6, 11, 5, 1, 2, 4, 13, 11, 0, 11, 1, 15, 14, 9, 9, 8, 9, 7, 5, 15, 9, 3, 11, 0, 15, 11, 1, 0, 8, 4, 16},
|
||||
[]byte{5, 0, 9},
|
||||
[]byte{5, 0, 9, 5, 11, 7, 6, 0, 2, 3, 9, 7, 4, 4, 4, 0, 14, 6, 12, 1, 5, 5, 14, 2, 6, 11, 3, 15, 7, 0, 8, 4, 15, 0, 11, 1, 9, 0, 1, 10, 0, 13, 15, 2, 1, 8, 3, 13, 12, 15, 14, 11, 14, 0, 1, 15, 3, 2, 6, 13, 5, 14, 9, 6, 16},
|
||||
[]byte{5, 0, 15},
|
||||
[]byte{5, 0, 15, 15, 4, 13, 4, 7, 10, 4, 6, 12, 9, 12, 13, 3, 5, 11, 0, 2, 9, 14, 9, 5, 14, 15, 9, 12, 9, 5, 7, 14, 5, 7, 13, 10, 9, 8, 7, 4, 9, 1, 15, 6, 14, 7, 11, 14, 2, 4, 2, 14, 7, 2, 11, 12, 5, 13, 3, 14, 8, 0, 8, 6, 16},
|
||||
[]byte{5, 1},
|
||||
[]byte{5, 1, 14},
|
||||
[]byte{5, 1, 14, 14, 1, 14, 0, 8, 13, 11, 0, 1, 4, 15, 12, 6, 9, 9, 5, 8, 7, 6, 6, 7, 11, 7, 2, 5, 6, 14, 7, 11, 9, 0, 9, 0, 14, 1, 7, 5, 5, 12, 5, 8, 7, 4, 2, 0, 12, 15, 15, 5, 15, 11, 14, 0, 14, 2, 0, 1, 9, 4, 15, 12, 16},
|
||||
[]byte{5, 1, 15},
|
||||
[]byte{5, 1, 15, 0, 14, 2, 1, 13, 8, 12, 8, 10, 14, 14, 15, 6, 0, 13, 10, 6, 10, 14, 5, 8, 13, 1, 0, 13, 12, 15, 1, 15, 4, 2, 14, 7, 13, 9, 10, 0, 12, 11, 8, 14, 14, 2, 11, 4, 10, 9, 7, 12, 10, 10, 5, 6, 6, 10, 1, 5, 2, 11, 6, 1, 16},
|
||||
[]byte{5, 2},
|
||||
[]byte{5, 2, 8},
|
||||
[]byte{5, 2, 8, 11, 5, 5, 5, 6, 4, 14, 8, 5, 1, 8, 5, 4, 8, 14, 4, 2, 11, 5, 3, 4, 13, 10, 3, 10, 5, 2, 6, 1, 7, 9, 11, 8, 2, 0, 15, 2, 6, 4, 14, 14, 7, 12, 6, 9, 2, 9, 13, 0, 0, 11, 0, 11, 6, 10, 3, 1, 12, 15, 12, 2, 16},
|
||||
[]byte{5, 2, 10},
|
||||
[]byte{5, 2, 10, 6, 15, 11, 5, 6, 14, 1, 3, 13, 4, 5, 15, 14, 1, 6, 4, 5, 6, 14, 8, 2, 8, 12, 8, 12, 3, 7, 5, 11, 0, 13, 14, 12, 10, 10, 14, 2, 13, 6, 4, 4, 11, 7, 6, 15, 8, 10, 9, 11, 0, 10, 7, 4, 1, 13, 14, 1, 14, 13, 8, 9, 16},
|
||||
[]byte{5, 3},
|
||||
[]byte{5, 3, 8, 0, 12, 7, 11, 7, 10, 14, 8, 1, 10, 5, 8, 14, 11, 9, 8, 13, 9, 12, 7, 8, 13, 14, 4, 10, 1, 15, 13, 7, 15, 13, 9, 5, 3, 5, 15, 12, 9, 5, 3, 14, 13, 2, 11, 14, 6, 0, 2, 13, 10, 10, 10, 4, 1, 7, 6, 7, 3, 1, 2, 10, 16},
|
||||
[]byte{5, 4},
|
||||
[]byte{5, 4, 6},
|
||||
[]byte{5, 4, 6, 6, 9, 0, 12, 15, 9, 5, 1, 0, 11, 4, 11, 7, 7, 3, 2, 13, 2, 12, 9, 9, 12, 7, 12, 2, 13, 9, 9, 4, 15, 6, 6, 6, 8, 11, 7, 13, 7, 15, 7, 5, 10, 1, 13, 2, 8, 12, 0, 14, 11, 10, 5, 3, 15, 7, 8, 4, 15, 14, 1, 14, 16},
|
||||
[]byte{5, 4, 12},
|
||||
[]byte{5, 4, 12, 9, 0, 1, 15, 4, 1, 5, 14, 12, 15, 8, 9, 12, 4, 6, 1, 5, 9, 11, 3, 5, 6, 10, 4, 10, 9, 5, 14, 9, 14, 5, 6, 6, 6, 11, 12, 8, 8, 15, 8, 11, 15, 4, 11, 15, 5, 13, 9, 12, 1, 5, 10, 10, 12, 8, 7, 0, 9, 14, 0, 10, 16},
|
||||
[]byte{5, 6},
|
||||
[]byte{5, 6, 13, 4, 2, 3, 11, 10, 5, 9, 13, 15, 7, 0, 7, 5, 11, 2, 7, 14, 5, 13, 5, 7, 3, 10, 13, 8, 3, 9, 9, 10, 12, 6, 10, 11, 8, 10, 7, 5, 4, 1, 14, 15, 11, 9, 10, 1, 14, 6, 4, 6, 10, 6, 7, 2, 4, 4, 3, 0, 1, 15, 14, 13, 16},
|
||||
[]byte{5, 8},
|
||||
[]byte{5, 8, 3},
|
||||
[]byte{5, 8, 3, 9, 2, 6, 2, 4, 4, 2, 11, 13, 8, 7, 11, 13, 12, 14, 9, 11, 12, 13, 8, 14, 9, 7, 6, 2, 8, 10, 8, 4, 15, 13, 0, 7, 10, 10, 15, 5, 5, 11, 10, 8, 12, 4, 12, 2, 9, 14, 1, 10, 14, 9, 1, 12, 11, 1, 7, 12, 11, 2, 2, 2, 16},
|
||||
[]byte{5, 8, 11},
|
||||
[]byte{5, 8, 11, 11, 8, 13, 7, 11, 10, 2, 15, 5, 2, 2, 2, 8, 8, 5, 3, 2, 3, 8, 11, 2, 6, 11, 15, 14, 3, 14, 11, 9, 6, 0, 7, 12, 14, 10, 9, 4, 4, 14, 7, 0, 2, 0, 4, 5, 8, 9, 8, 1, 6, 1, 8, 14, 15, 14, 8, 2, 8, 0, 10, 1, 16},
|
||||
[]byte{5, 10},
|
||||
[]byte{5, 10, 4, 11, 14, 2, 3, 2, 2, 14, 11, 5, 0, 12, 15, 14, 10, 1, 0, 5, 1, 9, 7, 8, 12, 2, 8, 4, 5, 2, 6, 12, 13, 5, 10, 6, 14, 2, 8, 12, 10, 12, 10, 6, 8, 1, 8, 5, 5, 7, 3, 6, 10, 5, 13, 3, 12, 3, 1, 13, 9, 11, 10, 13, 16},
|
||||
[]byte{5, 11},
|
||||
[]byte{5, 11, 7, 0, 14, 8, 0, 5, 3, 8, 10, 12, 13, 10, 11, 13, 6, 1, 3, 7, 3, 5, 3, 11, 0, 15, 9, 13, 8, 13, 1, 4, 9, 15, 4, 13, 11, 10, 9, 1, 14, 8, 11, 14, 2, 14, 7, 9, 4, 6, 14, 4, 0, 9, 11, 15, 13, 11, 14, 6, 8, 5, 11, 9, 16},
|
||||
[]byte{5, 12},
|
||||
[]byte{5, 12, 3, 3, 8, 2, 0, 12, 3, 13, 7, 6, 15, 4, 13, 14, 8, 13, 1, 14, 0, 14, 12, 10, 2, 4, 12, 7, 13, 2, 15, 11, 14, 15, 7, 6, 1, 8, 9, 11, 6, 10, 4, 3, 10, 7, 10, 15, 14, 10, 4, 13, 15, 13, 10, 5, 11, 5, 0, 14, 13, 11, 9, 6, 16},
|
||||
[]byte{5, 13},
|
||||
[]byte{5, 13, 9, 1, 1, 4, 14, 8, 12, 0, 11, 1, 14, 8, 5, 8, 11, 15, 7, 3, 2, 2, 14, 14, 12, 1, 2, 2, 14, 3, 15, 12, 4, 11, 0, 9, 8, 8, 15, 1, 4, 6, 6, 2, 0, 13, 14, 15, 0, 15, 13, 14, 9, 13, 11, 13, 3, 2, 2, 15, 3, 10, 0, 3, 16},
|
||||
[]byte{5, 15},
|
||||
[]byte{5, 15, 9, 14, 4, 14, 14, 1, 7, 2, 4, 6, 9, 12, 15, 13, 10, 3, 8, 10, 7, 4, 5, 7, 14, 15, 1, 9, 2, 11, 6, 14, 15, 11, 1, 6, 9, 15, 14, 13, 11, 7, 3, 9, 4, 3, 14, 4, 12, 9, 8, 7, 13, 4, 14, 11, 9, 1, 0, 1, 8, 9, 13, 4, 16},
|
||||
[]byte{6},
|
||||
[]byte{6, 0},
|
||||
[]byte{6, 0, 4, 2, 5, 0, 1, 0, 5, 4, 8, 3, 1, 9, 2, 0, 11, 12, 9, 13, 5, 0, 10, 3, 3, 13, 6, 11, 14, 1, 11, 5, 10, 8, 2, 1, 4, 12, 3, 1, 11, 10, 9, 4, 1, 6, 9, 5, 8, 15, 8, 9, 9, 6, 12, 13, 11, 6, 13, 13, 11, 0, 5, 12, 16},
|
||||
[]byte{6, 2},
|
||||
[]byte{6, 2, 3},
|
||||
[]byte{6, 2, 3, 15, 3, 0, 0, 11, 15, 6, 0, 0, 11, 7, 11, 0, 5, 0, 11, 9, 11, 7, 0, 15, 10, 5, 7, 1, 4, 0, 12, 5, 9, 10, 5, 15, 0, 11, 9, 15, 12, 5, 11, 9, 13, 0, 11, 13, 10, 11, 1, 1, 13, 1, 0, 8, 10, 7, 1, 15, 12, 1, 10, 3, 16},
|
||||
[]byte{6, 2, 9},
|
||||
[]byte{6, 2, 9, 8, 13, 14, 11, 7, 12, 7, 3, 6, 13, 12, 5, 0, 11, 4, 5, 9, 0, 12, 10, 0, 6, 6, 11, 7, 2, 1, 7, 3, 13, 4, 14, 2, 12, 3, 15, 7, 5, 11, 11, 1, 0, 9, 3, 9, 6, 15, 3, 2, 14, 10, 10, 15, 9, 10, 13, 1, 1, 11, 12, 8, 16},
|
||||
[]byte{6, 4},
|
||||
[]byte{6, 4, 0},
|
||||
[]byte{6, 4, 0, 0},
|
||||
[]byte{6, 4, 0, 0, 15, 12, 3, 2, 12, 5, 11, 2, 13, 3, 5, 8, 0, 12, 0, 14, 1, 9, 8, 8, 9, 4, 8, 7, 12, 15, 9, 14, 0, 5, 7, 13, 6, 11, 8, 2, 10, 9, 9, 11, 15, 3, 0, 14, 11, 6, 14, 5, 3, 9, 11, 7, 12, 13, 14, 5, 2, 6, 5, 5, 16},
|
||||
[]byte{6, 4, 0, 5},
|
||||
[]byte{6, 4, 0, 5, 2, 8, 14, 5, 12, 15, 1, 4, 3, 15, 1, 7, 3, 13, 2, 9, 12, 13, 8, 11, 4, 15, 8, 9, 6, 10, 1, 12, 6, 1, 2, 8, 15, 3, 4, 1, 6, 12, 8, 8, 7, 12, 1, 0, 13, 4, 10, 1, 1, 8, 9, 8, 8, 4, 1, 11, 4, 10, 8, 2, 16},
|
||||
[]byte{6, 5},
|
||||
[]byte{6, 5, 4},
|
||||
[]byte{6, 5, 4, 5, 13, 9, 8, 11, 7, 12, 7, 13, 13, 9, 14, 0, 2, 3, 7, 5, 3, 10, 6, 4, 12, 5, 1, 5, 14, 6, 9, 14, 1, 9, 14, 7, 2, 11, 1, 8, 15, 1, 6, 3, 8, 3, 1, 12, 0, 8, 12, 7, 15, 5, 5, 9, 13, 13, 8, 1, 3, 4, 11, 5, 16},
|
||||
[]byte{6, 5, 10},
|
||||
[]byte{6, 5, 10, 1, 12, 5, 6, 6, 7, 7, 7, 6, 13, 13, 9, 10, 7, 2, 6, 10, 6, 7, 0, 3, 8, 14, 4, 5, 14, 0, 4, 0, 11, 1, 15, 10, 4, 6, 3, 14, 13, 5, 5, 15, 7, 5, 3, 12, 2, 1, 5, 6, 11, 3, 5, 5, 6, 1, 6, 15, 2, 12, 8, 2, 16},
|
||||
[]byte{6, 5, 12},
|
||||
[]byte{6, 5, 12, 10, 7, 3, 1, 5, 3, 12, 11, 8, 15, 0, 2, 2, 3, 3, 12, 0, 13, 1, 2, 15, 9, 9, 6, 14, 3, 13, 12, 1, 5, 8, 4, 15, 0, 4, 2, 6, 2, 8, 5, 15, 6, 3, 11, 15, 4, 1, 11, 14, 12, 9, 1, 10, 8, 6, 13, 3, 12, 3, 6, 14, 16},
|
||||
[]byte{6, 5, 13},
|
||||
[]byte{6, 5, 13, 0, 7, 11, 4, 13, 8, 1, 5, 0, 8, 12, 2, 4, 15, 5, 5, 1, 7, 2, 10, 15, 10, 11, 2, 9, 3, 5, 13, 11, 2, 1, 0, 6, 8, 9, 11, 10, 11, 10, 6, 2, 7, 0, 9, 9, 1, 15, 0, 2, 1, 8, 3, 5, 6, 7, 0, 5, 13, 12, 1, 12, 16},
|
||||
[]byte{6, 6},
|
||||
[]byte{6, 6, 0},
|
||||
[]byte{6, 6, 0, 15, 4, 15, 9, 3, 8, 6, 5, 10, 13, 8, 0, 13, 0, 12, 9, 15, 1, 1, 5, 9, 11, 12, 1, 7, 14, 12, 10, 10, 3, 9, 8, 10, 0, 15, 4, 10, 15, 3, 10, 3, 7, 4, 13, 13, 0, 3, 3, 11, 2, 0, 0, 2, 9, 3, 7, 8, 9, 8, 0, 10, 16},
|
||||
[]byte{6, 6, 8},
|
||||
[]byte{6, 6, 8, 8, 12, 7, 11, 8, 12, 0, 2, 4, 2, 8, 10, 3, 11, 10, 7, 14, 0, 11, 8, 3, 2, 3, 7, 9, 7, 8, 10, 4, 6, 15, 10, 15, 9, 10, 6, 3, 2, 15, 12, 6, 1, 5, 13, 15, 12, 15, 7, 2, 2, 6, 4, 7, 3, 12, 2, 4, 4, 0, 0, 4, 16},
|
||||
[]byte{6, 8},
|
||||
[]byte{6, 8, 4},
|
||||
[]byte{6, 8, 4, 2},
|
||||
[]byte{6, 8, 4, 2, 7, 2, 5, 4, 7, 11, 10, 12, 4, 12, 0, 8, 3, 11, 7, 3, 8, 0, 15, 0, 5, 4, 13, 0, 8, 10, 5, 0, 3, 0, 8, 6, 2, 10, 5, 15, 0, 6, 10, 2, 3, 6, 7, 15, 3, 11, 8, 14, 8, 8, 0, 12, 4, 11, 7, 3, 7, 0, 14, 13, 16},
|
||||
[]byte{6, 8, 4, 9},
|
||||
[]byte{6, 8, 4, 9, 2, 15, 2, 0, 12, 1, 13, 7, 5, 9, 7, 4, 2, 5, 12, 8, 10, 5, 3, 10, 7, 15, 5, 14, 3, 8, 0, 15, 11, 12, 14, 0, 5, 8, 13, 1, 11, 15, 14, 10, 2, 5, 2, 1, 10, 7, 14, 8, 10, 15, 0, 3, 12, 3, 8, 7, 14, 1, 10, 0, 16},
|
||||
[]byte{6, 8, 9},
|
||||
[]byte{6, 8, 9, 8, 0, 2, 13, 6, 14, 13, 1, 10, 2, 8, 11, 0, 4, 9, 14, 9, 13, 4, 15, 14, 5, 3, 3, 4, 12, 5, 9, 0, 2, 15, 13, 9, 11, 12, 0, 0, 12, 4, 2, 8, 2, 1, 12, 8, 2, 15, 8, 2, 14, 14, 2, 13, 10, 1, 0, 11, 14, 9, 0, 8, 16},
|
||||
[]byte{6, 10},
|
||||
[]byte{6, 10, 1},
|
||||
[]byte{6, 10, 1, 12, 4, 14, 8, 11, 7, 12, 7, 1, 0, 5, 3, 1, 12, 9, 14, 6, 6, 1, 6, 6, 13, 0, 6, 2, 9, 15, 15, 4, 4, 3, 13, 15, 1, 9, 12, 14, 15, 10, 0, 8, 1, 14, 11, 4, 15, 15, 15, 12, 12, 7, 13, 2, 6, 7, 12, 14, 7, 12, 9, 2, 16},
|
||||
[]byte{6, 10, 14},
|
||||
[]byte{6, 10, 14, 15, 12, 7, 2, 9, 14, 2, 8, 14, 1, 11, 11, 13, 2, 14, 6, 3, 13, 13, 0, 8, 0, 3, 3, 1, 4, 13, 14, 11, 8, 0, 8, 10, 11, 0, 4, 4, 9, 0, 9, 10, 15, 8, 8, 2, 11, 7, 9, 3, 5, 13, 13, 0, 5, 15, 5, 9, 3, 9, 10, 4, 16},
|
||||
[]byte{6, 11},
|
||||
[]byte{6, 11, 2},
|
||||
[]byte{6, 11, 2, 12, 0, 3, 1, 0, 3, 11, 5, 5, 10, 4, 5, 12, 12, 1, 14, 4, 5, 5, 0, 8, 8, 9, 10, 9, 3, 9, 6, 14, 7, 14, 3, 3, 1, 11, 5, 12, 15, 1, 7, 2, 9, 14, 4, 8, 7, 1, 15, 15, 4, 13, 14, 14, 7, 0, 1, 1, 3, 9, 14, 9, 16},
|
||||
[]byte{6, 11, 12},
|
||||
[]byte{6, 11, 12, 15, 13, 5, 8, 7, 6, 9, 12, 6, 9, 6, 6, 14, 3, 1, 10, 10, 11, 14, 2, 8, 10, 13, 13, 12, 14, 6, 1, 5, 1, 15, 2, 13, 13, 2, 14, 10, 1, 13, 9, 12, 3, 0, 7, 14, 0, 9, 12, 6, 12, 9, 13, 11, 9, 5, 11, 6, 11, 1, 0, 3, 16},
|
||||
[]byte{6, 11, 14},
|
||||
[]byte{6, 11, 14, 4, 14, 11, 2, 15, 11, 3, 0, 8, 15, 13, 6, 4, 1, 3, 4, 6, 5, 3, 3, 10, 4, 10, 12, 11, 9, 12, 4, 12, 12, 10, 3, 14, 2, 13, 4, 7, 8, 14, 9, 0, 7, 5, 5, 2, 2, 6, 4, 6, 12, 9, 7, 2, 10, 2, 0, 6, 2, 9, 8, 5, 16},
|
||||
[]byte{6, 13},
|
||||
[]byte{6, 13, 2},
|
||||
[]byte{6, 13, 2, 0, 3, 2, 11, 0, 0, 2, 13, 13, 10, 8, 12, 5, 2, 8, 0, 11, 15, 4, 8, 2, 1, 3, 13, 7, 11, 9, 8, 1, 4, 7, 6, 10, 9, 10, 8, 14, 5, 3, 10, 6, 9, 10, 3, 9, 12, 6, 2, 5, 14, 5, 12, 8, 1, 2, 9, 14, 9, 2, 8, 7, 16},
|
||||
[]byte{6, 13, 12},
|
||||
[]byte{6, 13, 12, 8, 0, 9, 0, 1, 2, 12, 12, 9, 1, 3, 3, 5, 10, 5, 14, 10, 4, 14, 1, 8, 6, 11, 13, 0, 4, 4, 7, 9, 10, 10, 12, 7, 13, 10, 14, 1, 11, 12, 11, 13, 0, 2, 3, 11, 15, 6, 6, 0, 2, 1, 3, 10, 6, 9, 15, 4, 15, 13, 11, 13, 16},
|
||||
[]byte{7},
|
||||
[]byte{7, 1},
|
||||
[]byte{7, 1, 10, 3, 12, 7, 15, 8, 13, 0, 15, 14, 8, 10, 11, 12, 9, 15, 11, 10, 11, 1, 8, 6, 0, 10, 13, 5, 7, 6, 14, 13, 13, 15, 15, 2, 1, 4, 4, 7, 6, 3, 9, 3, 7, 1, 9, 5, 14, 10, 4, 15, 0, 1, 2, 15, 12, 6, 2, 5, 11, 0, 5, 3, 16},
|
||||
[]byte{7, 5},
|
||||
[]byte{7, 5, 4, 2, 2, 10, 3, 13, 3, 6, 12, 9, 3, 15, 12, 11, 12, 12, 10, 13, 2, 14, 5, 0, 2, 7, 7, 5, 2, 2, 6, 15, 3, 7, 5, 14, 2, 6, 4, 14, 3, 5, 15, 12, 5, 5, 10, 12, 2, 0, 13, 15, 1, 14, 9, 15, 0, 5, 0, 14, 8, 11, 8, 12, 16},
|
||||
[]byte{7, 7},
|
||||
[]byte{7, 7, 4, 4, 11, 14, 2, 4, 2, 7, 12, 10, 12, 15, 1, 7, 0, 6, 2, 12, 11, 0, 3, 0, 13, 3, 0, 14, 3, 4, 12, 3, 11, 5, 4, 3, 11, 2, 8, 10, 8, 3, 7, 0, 7, 13, 15, 0, 4, 14, 6, 4, 13, 3, 15, 7, 13, 13, 11, 4, 7, 1, 11, 8, 16},
|
||||
[]byte{7, 8},
|
||||
[]byte{7, 8, 2},
|
||||
[]byte{7, 8, 2, 0, 11, 4, 1, 3, 9, 4, 13, 7, 15, 3, 0, 15, 2, 11, 0, 2, 15, 2, 4, 15, 8, 10, 3, 3, 10, 15, 14, 8, 11, 9, 8, 12, 13, 6, 8, 8, 2, 7, 14, 12, 6, 5, 1, 10, 14, 12, 3, 11, 10, 3, 3, 14, 4, 1, 2, 0, 6, 15, 14, 2, 16},
|
||||
[]byte{7, 8, 5},
|
||||
[]byte{7, 8, 5, 10, 3, 2, 11, 15, 0, 15, 4, 2, 11, 13, 6, 12, 9, 8, 6, 11, 9, 0, 0, 0, 7, 0, 11, 13, 7, 0, 15, 15, 4, 14, 13, 5, 14, 10, 10, 13, 4, 4, 8, 14, 5, 7, 12, 15, 5, 13, 9, 9, 7, 2, 2, 4, 12, 3, 15, 8, 7, 12, 2, 12, 16},
|
||||
[]byte{7, 9},
|
||||
[]byte{7, 9, 13, 14, 11, 2, 15, 0, 4, 2, 15, 1, 7, 1, 7, 12, 12, 8, 8, 2, 12, 5, 10, 3, 8, 11, 11, 11, 6, 12, 5, 2, 4, 9, 3, 2, 3, 5, 2, 15, 15, 2, 5, 11, 10, 14, 11, 8, 11, 8, 15, 13, 2, 2, 2, 5, 0, 9, 5, 14, 2, 9, 10, 14, 16},
|
||||
[]byte{7, 13},
|
||||
[]byte{7, 13, 1},
|
||||
[]byte{7, 13, 1, 0},
|
||||
[]byte{7, 13, 1, 0, 0, 9, 3, 3, 1, 1, 9, 5, 15, 6, 10, 3, 12, 2, 14, 14, 14, 6, 10, 12, 4, 11, 4, 6, 6, 4, 15, 6, 1, 12, 7, 7, 7, 5, 0, 0, 12, 1, 6, 3, 14, 14, 8, 4, 7, 6, 9, 9, 1, 3, 5, 7, 8, 10, 3, 3, 11, 13, 15, 2, 16},
|
||||
[]byte{7, 13, 1, 13},
|
||||
[]byte{7, 13, 1, 13, 5, 15, 3, 10, 1, 4, 12, 0, 10, 11, 1, 3, 3, 11, 6, 5, 6, 9, 8, 12, 2, 13, 6, 2, 12, 8, 1, 8, 12, 6, 5, 15, 1, 3, 3, 0, 6, 12, 12, 11, 15, 13, 6, 1, 10, 10, 4, 11, 7, 5, 9, 0, 11, 11, 7, 8, 6, 6, 0, 12, 16},
|
||||
[]byte{7, 13, 7},
|
||||
[]byte{7, 13, 7, 6, 6, 5, 0, 3, 11, 9, 1, 5, 8, 14, 14, 0, 6, 11, 0, 10, 5, 8, 7, 8, 5, 9, 15, 6, 14, 2, 4, 9, 7, 4, 12, 7, 8, 12, 3, 10, 6, 4, 11, 6, 14, 4, 13, 8, 10, 14, 15, 11, 12, 11, 8, 10, 13, 3, 11, 12, 2, 1, 2, 7, 16},
|
||||
[]byte{7, 14},
|
||||
[]byte{7, 14, 8},
|
||||
[]byte{7, 14, 8, 3, 3, 11, 9, 11, 8, 6, 7, 12, 10, 10, 14, 3, 13, 5, 14, 2, 11, 6, 4, 12, 1, 3, 10, 7, 4, 4, 15, 0, 14, 5, 12, 12, 1, 11, 15, 15, 5, 0, 15, 13, 11, 3, 7, 1, 3, 14, 3, 12, 5, 0, 5, 1, 1, 4, 10, 0, 7, 13, 14, 1, 16},
|
||||
[]byte{7, 14, 11},
|
||||
[]byte{7, 14, 11, 6, 15, 13, 10, 13, 12, 6, 7, 0, 3, 10, 13, 6, 4, 10, 7, 12, 12, 13, 5, 15, 14, 13, 13, 12, 7, 8, 8, 13, 12, 9, 2, 14, 15, 10, 12, 7, 14, 0, 6, 6, 14, 0, 1, 13, 5, 14, 11, 7, 1, 7, 6, 14, 9, 1, 10, 6, 3, 3, 1, 13, 16},
|
||||
[]byte{8},
|
||||
[]byte{8, 0},
|
||||
[]byte{8, 0, 3},
|
||||
[]byte{8, 0, 3, 8, 2, 2, 8, 0, 14, 2, 15, 4, 10, 8, 14, 10, 9, 0, 0, 1, 12, 8, 14, 2, 2, 3, 3, 2, 10, 3, 13, 12, 3, 13, 3, 10, 6, 9, 2, 11, 5, 4, 9, 13, 3, 12, 9, 0, 15, 6, 5, 7, 9, 6, 2, 7, 0, 14, 1, 14, 11, 7, 7, 0, 16},
|
||||
[]byte{8, 0, 11},
|
||||
[]byte{8, 0, 11, 14, 8, 5, 8, 10, 11, 0, 9, 7, 8, 9, 13, 2, 6, 12, 15, 1, 1, 2, 8, 7, 7, 5, 7, 5, 6, 10, 8, 10, 11, 14, 1, 12, 8, 15, 15, 12, 4, 2, 1, 8, 13, 3, 14, 9, 9, 0, 11, 3, 13, 2, 5, 10, 8, 2, 5, 8, 3, 2, 5, 5, 16},
|
||||
[]byte{8, 2},
|
||||
[]byte{8, 2, 6, 12, 14, 1, 13, 6, 0, 10, 12, 9, 15, 0, 10, 11, 5, 9, 4, 4, 10, 12, 15, 1, 12, 0, 6, 7, 0, 0, 10, 5, 8, 5, 15, 8, 4, 0, 7, 13, 6, 7, 0, 4, 9, 5, 12, 7, 8, 1, 1, 11, 9, 7, 12, 15, 8, 2, 6, 3, 11, 4, 3, 4, 16},
|
||||
[]byte{8, 4},
|
||||
[]byte{8, 4, 8, 4, 4, 5, 2, 14, 4, 15, 0, 12, 1, 10, 9, 15, 1, 1, 5, 12, 5, 2, 11, 4, 10, 12, 7, 8, 10, 0, 13, 14, 2, 15, 1, 11, 0, 10, 11, 1, 10, 4, 10, 10, 14, 8, 3, 9, 0, 4, 2, 6, 10, 12, 7, 1, 14, 0, 3, 15, 8, 7, 7, 9, 16},
|
||||
[]byte{8, 8},
|
||||
[]byte{8, 8, 1, 10, 5, 0, 6, 0, 3, 9, 14, 2, 5, 10, 8, 1, 8, 15, 3, 5, 10, 10, 0, 14, 3, 14, 12, 5, 8, 12, 6, 4, 13, 15, 5, 12, 1, 0, 6, 2, 4, 5, 13, 12, 2, 5, 14, 15, 6, 15, 10, 4, 12, 15, 1, 14, 11, 1, 10, 10, 11, 5, 6, 10, 16},
|
||||
[]byte{8, 9},
|
||||
[]byte{8, 9, 3},
|
||||
[]byte{8, 9, 3, 8, 11, 14, 2, 10, 13, 9, 9, 5, 0, 3, 9, 0, 13, 6, 13, 9, 2, 2, 1, 3, 12, 10, 1, 0, 2, 15, 12, 2, 1, 10, 4, 3, 0, 4, 12, 8, 8, 3, 5, 4, 13, 0, 14, 7, 4, 15, 4, 11, 3, 15, 15, 6, 9, 6, 12, 14, 5, 7, 9, 1, 16},
|
||||
[]byte{8, 9, 13},
|
||||
[]byte{8, 9, 13, 0, 4, 11, 12, 11, 10, 3, 9, 6, 13, 1, 2, 13, 14, 1, 14, 13, 3, 6, 15, 4, 1, 13, 15, 6, 0, 12, 14, 0, 10, 14, 0, 4, 4, 9, 11, 10, 14, 8, 3, 15, 1, 4, 12, 7, 4, 0, 4, 5, 1, 12, 15, 1, 9, 3, 6, 2, 10, 14, 8, 15, 16},
|
||||
[]byte{8, 10},
|
||||
[]byte{8, 10, 14, 5, 8, 6, 10, 10, 1, 14, 12, 2, 12, 2, 9, 10, 12, 14, 13, 4, 15, 14, 11, 5, 10, 13, 15, 9, 3, 3, 6, 5, 4, 1, 7, 6, 9, 11, 9, 3, 12, 13, 5, 11, 8, 12, 12, 1, 11, 6, 4, 11, 7, 13, 8, 3, 1, 12, 7, 11, 0, 14, 12, 2, 16},
|
||||
[]byte{8, 12},
|
||||
[]byte{8, 12, 3},
|
||||
[]byte{8, 12, 3, 10, 11, 0, 9, 7, 0, 11, 7, 3, 8, 9, 5, 11, 8, 12, 9, 9, 5, 9, 11, 10, 14, 6, 8, 5, 12, 3, 10, 1, 9, 15, 4, 5, 14, 11, 5, 10, 13, 8, 9, 13, 4, 2, 11, 5, 2, 10, 3, 4, 0, 14, 12, 4, 10, 12, 2, 0, 4, 13, 1, 9, 16},
|
||||
[]byte{8, 12, 15},
|
||||
[]byte{8, 12, 15, 14, 15, 10, 9, 8, 0, 6, 12, 9, 9, 13, 11, 8, 11, 14, 10, 1, 14, 13, 8, 14, 5, 3, 4, 15, 6, 13, 12, 13, 11, 8, 3, 5, 12, 13, 1, 4, 1, 0, 15, 1, 15, 2, 8, 7, 14, 10, 4, 2, 9, 3, 14, 2, 9, 10, 3, 14, 10, 12, 12, 0, 16},
|
||||
[]byte{8, 13},
|
||||
[]byte{8, 13, 13, 8, 1, 10, 6, 0, 3, 5, 5, 1, 3, 8, 14, 9, 10, 8, 0, 0, 5, 4, 6, 0, 3, 15, 14, 2, 3, 13, 7, 8, 9, 6, 5, 4, 4, 2, 5, 4, 15, 6, 6, 14, 2, 3, 6, 13, 4, 7, 8, 10, 9, 11, 0, 3, 3, 12, 3, 10, 0, 3, 3, 0, 16},
|
||||
[]byte{8, 15},
|
||||
[]byte{8, 15, 8},
|
||||
[]byte{8, 15, 8, 7, 5, 5, 14, 5, 13, 8, 4, 1, 8, 7, 0, 4, 7, 7, 4, 15, 3, 8, 10, 12, 7, 9, 13, 13, 9, 4, 4, 12, 2, 2, 3, 11, 10, 14, 9, 10, 14, 3, 6, 1, 12, 5, 14, 15, 13, 13, 6, 1, 4, 13, 0, 9, 12, 6, 0, 15, 13, 12, 15, 12, 16},
|
||||
[]byte{8, 15, 13},
|
||||
[]byte{8, 15, 13, 5, 6, 15, 15, 4, 7, 4, 6, 0, 2, 12, 9, 8, 1, 3, 6, 15, 4, 10, 9, 3, 8, 9, 14, 3, 14, 2, 11, 5, 13, 7, 14, 7, 8, 14, 12, 5, 5, 13, 5, 14, 13, 11, 6, 3, 15, 11, 4, 7, 7, 13, 7, 2, 8, 1, 4, 2, 4, 5, 1, 5, 16},
|
||||
[]byte{9},
|
||||
[]byte{9, 0},
|
||||
[]byte{9, 0, 11, 0, 13, 2, 8, 9, 14, 10, 2, 1, 1, 13, 12, 10, 8, 14, 0, 2, 0, 12, 9, 12, 12, 8, 12, 5, 13, 6, 11, 10, 2, 15, 4, 1, 6, 15, 14, 1, 5, 15, 10, 6, 9, 2, 11, 4, 7, 1, 8, 4, 10, 4, 11, 9, 4, 6, 11, 2, 2, 1, 4, 13, 16},
|
||||
[]byte{9, 5},
|
||||
[]byte{9, 5, 4, 6, 13, 14, 10, 2, 2, 15, 2, 4, 7, 9, 7, 5, 2, 8, 1, 6, 11, 6, 5, 10, 10, 9, 13, 11, 1, 11, 8, 3, 5, 14, 15, 14, 15, 11, 12, 1, 14, 13, 1, 1, 8, 0, 4, 6, 9, 9, 6, 8, 3, 8, 9, 7, 12, 13, 10, 4, 2, 2, 7, 14, 16},
|
||||
[]byte{9, 6},
|
||||
[]byte{9, 6, 10},
|
||||
[]byte{9, 6, 10, 13, 0, 11, 2, 7, 14, 15, 1, 0, 15, 10, 7, 10, 9, 9, 4, 0, 2, 9, 9, 13, 15, 1, 2, 2, 13, 3, 1, 2, 2, 2, 12, 12, 9, 1, 1, 11, 13, 2, 12, 9, 1, 13, 2, 7, 4, 0, 15, 2, 5, 10, 0, 13, 12, 9, 3, 1, 15, 4, 12, 0, 16},
|
||||
[]byte{9, 6, 14},
|
||||
[]byte{9, 6, 14, 1, 6, 10, 15, 9, 10, 10, 5, 15, 8, 9, 4, 12, 4, 3, 5, 1, 4, 13, 9, 4, 0, 6, 8, 7, 13, 10, 15, 10, 10, 5, 10, 13, 0, 4, 14, 10, 7, 8, 10, 3, 11, 0, 0, 8, 0, 3, 1, 9, 3, 7, 0, 14, 4, 5, 4, 6, 0, 2, 13, 2, 16},
|
||||
[]byte{9, 7},
|
||||
[]byte{9, 7, 8, 2, 11, 11, 0, 0, 6, 1, 7, 4, 14, 13, 0, 1, 4, 12, 5, 9, 14, 6, 14, 14, 14, 3, 8, 1, 12, 6, 14, 1, 0, 11, 12, 9, 3, 0, 4, 2, 2, 6, 14, 13, 11, 9, 9, 14, 13, 13, 6, 15, 8, 14, 9, 0, 4, 1, 14, 9, 13, 9, 10, 7, 16},
|
||||
[]byte{9, 9},
|
||||
[]byte{9, 9, 2, 4, 7, 0, 11, 3, 14, 5, 2, 12, 9, 4, 15, 7, 11, 13, 5, 13, 4, 9, 6, 2, 10, 1, 7, 9, 8, 10, 4, 1, 4, 2, 5, 11, 14, 10, 7, 4, 10, 13, 0, 8, 7, 10, 7, 15, 5, 3, 10, 14, 11, 11, 7, 8, 5, 4, 0, 1, 13, 15, 3, 13, 16},
|
||||
[]byte{9, 14},
|
||||
[]byte{9, 14, 14, 4, 0, 13, 12, 11, 12, 4, 9, 7, 4, 6, 14, 3, 1, 10, 7, 5, 4, 1, 5, 5, 5, 1, 5, 10, 10, 10, 2, 3, 2, 11, 15, 0, 11, 13, 11, 15, 13, 5, 10, 7, 10, 11, 7, 7, 14, 10, 9, 12, 13, 3, 9, 15, 4, 11, 7, 2, 8, 2, 10, 1, 16},
|
||||
[]byte{9, 15},
|
||||
[]byte{9, 15, 0},
|
||||
[]byte{9, 15, 0, 13, 11, 10, 14, 12, 12, 6, 5, 8, 1, 12, 15, 11, 11, 5, 7, 12, 13, 6, 12, 6, 15, 5, 0, 14, 2, 4, 12, 2, 3, 10, 13, 4, 15, 12, 13, 15, 2, 2, 8, 1, 4, 0, 12, 0, 12, 11, 5, 1, 10, 8, 10, 4, 14, 13, 15, 5, 13, 0, 11, 0, 16},
|
||||
[]byte{9, 15, 4},
|
||||
[]byte{9, 15, 4, 14, 6, 0, 1, 2, 3, 13, 11, 2, 3, 14, 3, 15, 3, 0, 5, 5, 15, 7, 5, 0, 8, 7, 2, 4, 8, 15, 13, 5, 9, 2, 3, 13, 4, 6, 9, 14, 7, 6, 13, 3, 4, 4, 13, 2, 8, 11, 4, 15, 2, 4, 10, 4, 4, 9, 12, 10, 6, 3, 9, 8, 16},
|
||||
[]byte{9, 15, 10},
|
||||
[]byte{9, 15, 10, 9, 5, 13, 1, 0, 7, 3, 2, 15, 3, 4, 3, 6, 5, 15, 3, 4, 15, 5, 10, 2, 15, 7, 7, 0, 2, 10, 9, 13, 10, 14, 4, 0, 12, 5, 8, 3, 1, 0, 5, 12, 4, 0, 9, 2, 1, 10, 5, 0, 5, 2, 13, 12, 10, 1, 15, 9, 15, 7, 9, 3, 16},
|
||||
[]byte{10},
|
||||
[]byte{10, 0},
|
||||
[]byte{10, 0, 9},
|
||||
[]byte{10, 0, 9, 2, 12, 3, 15, 3, 6, 1, 3, 5, 15, 7, 9, 12, 5, 7, 10, 10, 5, 6, 8, 3, 13, 9, 7, 14, 5, 13, 5, 7, 5, 0, 12, 3, 7, 13, 0, 11, 13, 0, 10, 13, 10, 2, 1, 5, 14, 9, 10, 9, 6, 8, 5, 6, 12, 5, 6, 13, 7, 14, 9, 1, 16},
|
||||
[]byte{10, 0, 10},
|
||||
[]byte{10, 0, 10, 2, 2, 2, 2, 6, 15, 8, 5, 3, 7, 1, 11, 5, 14, 5, 14, 4, 1, 7, 3, 11, 3, 3, 10, 1, 11, 9, 6, 2, 9, 13, 7, 4, 5, 9, 6, 1, 15, 3, 6, 14, 9, 11, 0, 5, 1, 0, 12, 5, 9, 1, 15, 1, 1, 14, 3, 13, 13, 9, 5, 11, 16},
|
||||
[]byte{10, 0, 15},
|
||||
[]byte{10, 0, 15, 1, 13, 13, 12, 6, 14, 3, 10, 10, 13, 6, 9, 1, 0, 9, 14, 0, 14, 8, 12, 5, 13, 1, 5, 14, 8, 8, 0, 0, 14, 2, 2, 0, 11, 1, 9, 2, 15, 8, 5, 15, 3, 6, 9, 14, 0, 11, 14, 15, 5, 12, 15, 8, 5, 8, 13, 12, 12, 15, 9, 10, 16},
|
||||
[]byte{10, 2},
|
||||
[]byte{10, 2, 1, 6, 12, 0, 10, 4, 7, 11, 1, 2, 12, 2, 0, 13, 5, 10, 12, 5, 12, 3, 8, 1, 4, 6, 4, 10, 8, 9, 5, 2, 1, 13, 8, 11, 0, 12, 1, 10, 5, 12, 11, 3, 2, 8, 10, 14, 10, 11, 11, 2, 9, 11, 7, 0, 11, 12, 3, 3, 4, 7, 13, 4, 16},
|
||||
[]byte{10, 3},
|
||||
[]byte{10, 3, 11, 4, 1, 12, 1, 3, 15, 6, 14, 1, 6, 15, 13, 2, 2, 4, 2, 10, 4, 3, 11, 0, 4, 1, 12, 15, 13, 1, 15, 0, 2, 12, 11, 11, 4, 12, 15, 0, 6, 9, 4, 3, 13, 1, 4, 3, 6, 5, 11, 11, 8, 15, 0, 10, 3, 0, 15, 15, 5, 0, 7, 10, 16},
|
||||
[]byte{10, 6},
|
||||
[]byte{10, 6, 2, 14, 9, 13, 12, 1, 5, 10, 3, 5, 12, 1, 10, 11, 9, 13, 0, 10, 12, 4, 3, 4, 5, 11, 1, 15, 0, 2, 15, 13, 8, 14, 8, 0, 7, 0, 8, 8, 3, 10, 3, 3, 6, 5, 1, 12, 0, 12, 1, 4, 3, 11, 2, 5, 8, 2, 7, 0, 8, 2, 6, 8, 16},
|
||||
[]byte{10, 8},
|
||||
[]byte{10, 8, 7, 6, 13, 10, 5, 1, 8, 10, 3, 9, 3, 13, 11, 13, 0, 6, 7, 13, 12, 7, 2, 10, 11, 15, 10, 0, 8, 13, 4, 7, 5, 14, 13, 6, 4, 4, 7, 15, 12, 10, 9, 6, 13, 9, 2, 14, 12, 3, 15, 9, 14, 7, 14, 11, 10, 5, 0, 3, 12, 10, 6, 1, 16},
|
||||
[]byte{10, 9},
|
||||
[]byte{10, 9, 3, 13, 11, 8, 6, 1, 1, 14, 8, 13, 0, 12, 1, 5, 9, 14, 11, 7, 2, 4, 13, 2, 10, 14, 10, 7, 2, 7, 6, 3, 13, 15, 11, 5, 10, 6, 9, 0, 9, 10, 8, 5, 1, 6, 4, 6, 7, 12, 7, 9, 13, 0, 3, 8, 6, 13, 6, 1, 10, 5, 1, 1, 16},
|
||||
[]byte{10, 10},
|
||||
[]byte{10, 10, 5},
|
||||
[]byte{10, 10, 5, 4, 6, 8, 1, 7, 13, 10, 11, 15, 15, 12, 9, 12, 4, 2, 4, 9, 8, 3, 0, 10, 0, 10, 15, 5, 12, 15, 4, 3, 12, 6, 14, 12, 14, 6, 5, 6, 2, 7, 2, 0, 9, 9, 0, 7, 3, 6, 1, 9, 9, 14, 5, 7, 0, 15, 6, 2, 1, 13, 7, 12, 16},
|
||||
[]byte{10, 10, 8},
|
||||
[]byte{10, 10, 8, 13, 9, 12, 9, 4, 7, 7, 7, 1, 6, 3, 2, 10, 6, 4, 5, 12, 6, 7, 6, 5, 5, 5, 9, 5, 11, 6, 1, 13, 10, 7, 2, 8, 3, 7, 11, 15, 10, 9, 7, 15, 3, 0, 15, 4, 1, 7, 13, 11, 10, 14, 13, 8, 2, 15, 2, 15, 1, 1, 12, 3, 16},
|
||||
[]byte{10, 13},
|
||||
[]byte{10, 13, 0},
|
||||
[]byte{10, 13, 0, 0, 12, 15, 4, 13, 7, 13, 11, 5, 2, 3, 15, 2, 0, 11, 5, 0, 0, 0, 11, 13, 1, 4, 6, 9, 10, 1, 1, 13, 7, 0, 11, 7, 3, 15, 14, 10, 13, 13, 3, 6, 5, 7, 8, 10, 11, 13, 11, 9, 15, 3, 5, 5, 8, 11, 13, 13, 3, 6, 7, 4, 16},
|
||||
[]byte{10, 13, 13},
|
||||
[]byte{10, 13, 13, 11, 0, 13, 4, 11, 1, 4, 7, 4, 9, 11, 11, 4, 11, 5, 12, 13, 8, 5, 8, 15, 2, 9, 10, 4, 11, 4, 2, 2, 5, 1, 3, 8, 12, 3, 9, 5, 3, 0, 9, 0, 12, 14, 4, 5, 2, 0, 4, 4, 5, 8, 13, 12, 13, 5, 3, 7, 4, 9, 14, 4, 16},
|
||||
[]byte{10, 14},
|
||||
[]byte{10, 14, 4},
|
||||
[]byte{10, 14, 4, 9, 15, 4, 4, 1, 7, 0, 4, 8, 12, 10, 12, 12, 0, 1, 7, 1, 6, 10, 2, 13, 8, 0, 4, 15, 6, 9, 9, 13, 8, 14, 12, 3, 4, 14, 10, 13, 7, 3, 5, 14, 1, 12, 6, 1, 6, 0, 4, 9, 9, 6, 10, 12, 3, 7, 15, 3, 5, 1, 5, 7, 16},
|
||||
[]byte{10, 14, 11},
|
||||
[]byte{10, 14, 11, 8},
|
||||
[]byte{10, 14, 11, 8, 6, 8, 12, 12, 8, 12, 13, 0, 0, 0, 1, 6, 7, 10, 15, 8, 11, 0, 15, 4, 13, 10, 13, 13, 2, 14, 3, 4, 8, 14, 5, 4, 3, 10, 0, 1, 9, 12, 13, 0, 11, 1, 3, 1, 2, 13, 11, 14, 13, 14, 11, 4, 14, 12, 13, 12, 5, 9, 2, 10, 16},
|
||||
[]byte{10, 14, 11, 14},
|
||||
[]byte{10, 14, 11, 14, 9, 9, 7, 3, 15, 12, 4, 8, 4, 9, 10, 2, 7, 5, 2, 1, 12, 2, 10, 7, 1, 10, 10, 11, 7, 6, 7, 3, 13, 13, 10, 11, 8, 3, 12, 12, 8, 8, 14, 9, 1, 10, 11, 14, 12, 6, 7, 5, 12, 1, 12, 4, 7, 1, 10, 11, 15, 9, 2, 7, 16},
|
||||
[]byte{10, 15},
|
||||
[]byte{10, 15, 0, 3, 1, 7, 5, 4, 4, 4, 13, 12, 4, 3, 12, 12, 3, 3, 3, 9, 1, 12, 4, 12, 4, 0, 1, 0, 14, 10, 12, 1, 5, 13, 4, 0, 1, 11, 2, 14, 11, 5, 15, 15, 12, 7, 11, 12, 7, 7, 8, 10, 11, 14, 3, 7, 2, 15, 2, 8, 12, 14, 3, 7, 16},
|
||||
[]byte{11},
|
||||
[]byte{11, 0},
|
||||
[]byte{11, 0, 2},
|
||||
[]byte{11, 0, 2, 12, 4, 13, 5, 8, 10, 3, 8, 0, 0, 13, 9, 3, 15, 9, 5, 15, 2, 14, 11, 4, 8, 5, 0, 11, 3, 13, 2, 4, 2, 7, 5, 6, 11, 15, 1, 12, 10, 3, 0, 9, 9, 11, 12, 4, 3, 9, 0, 7, 10, 15, 6, 13, 15, 15, 0, 11, 15, 3, 3, 7, 16},
|
||||
[]byte{11, 0, 15},
|
||||
[]byte{11, 0, 15, 14, 1, 8, 14, 5, 1, 0, 15, 6, 9, 5, 13, 11, 15, 2, 4, 10, 13, 5, 6, 15, 11, 3, 11, 6, 4, 7, 10, 10, 0, 9, 15, 8, 14, 1, 9, 0, 2, 1, 10, 11, 14, 8, 0, 6, 8, 6, 10, 6, 6, 10, 2, 14, 6, 5, 3, 12, 11, 1, 2, 13, 16},
|
||||
[]byte{11, 1},
|
||||
[]byte{11, 1, 4, 13, 9, 15, 13, 12, 6, 5, 7, 13, 7, 1, 2, 2, 0, 8, 13, 6, 14, 7, 12, 2, 12, 15, 11, 15, 6, 2, 15, 7, 10, 13, 7, 11, 10, 1, 11, 15, 15, 15, 2, 14, 6, 3, 14, 6, 12, 10, 14, 14, 2, 11, 0, 11, 15, 5, 11, 10, 13, 0, 15, 13, 16},
|
||||
[]byte{11, 2},
|
||||
[]byte{11, 2, 5, 9, 3, 9, 8, 6, 7, 9, 9, 4, 12, 13, 8, 14, 5, 10, 1, 8, 15, 3, 4, 1, 6, 2, 8, 4, 2, 0, 15, 10, 8, 10, 11, 8, 8, 11, 2, 15, 5, 13, 0, 5, 15, 15, 14, 5, 1, 2, 9, 1, 6, 5, 4, 9, 2, 2, 15, 5, 4, 5, 4, 15, 16},
|
||||
[]byte{11, 3},
|
||||
[]byte{11, 3, 1, 11, 10, 6, 13, 5, 7, 6, 13, 11, 13, 14, 0, 5, 4, 2, 13, 3, 0, 10, 9, 2, 6, 4, 14, 2, 12, 7, 1, 11, 14, 2, 7, 0, 14, 3, 14, 11, 4, 15, 5, 9, 1, 0, 5, 6, 7, 10, 8, 12, 1, 12, 0, 6, 1, 9, 10, 2, 14, 5, 14, 12, 16},
|
||||
[]byte{11, 4},
|
||||
[]byte{11, 4, 1, 0, 8, 9, 14, 5, 2, 9, 12, 1, 15, 15, 6, 12, 4, 13, 6, 5, 8, 3, 14, 12, 15, 12, 10, 7, 14, 10, 6, 4, 1, 9, 11, 15, 3, 9, 14, 0, 13, 4, 1, 8, 6, 8, 6, 11, 11, 7, 10, 2, 4, 4, 2, 4, 12, 6, 7, 0, 11, 3, 3, 2, 16},
|
||||
[]byte{11, 5},
|
||||
[]byte{11, 5, 3, 15, 6, 11, 12, 8, 1, 14, 12, 15, 10, 15, 0, 12, 15, 4, 12, 3, 13, 12, 13, 9, 5, 2, 7, 14, 3, 12, 0, 15, 6, 9, 1, 0, 3, 8, 3, 10, 12, 15, 9, 6, 4, 14, 13, 1, 4, 11, 1, 9, 4, 15, 10, 6, 6, 0, 13, 3, 0, 11, 1, 0, 16},
|
||||
[]byte{11, 7},
|
||||
[]byte{11, 7, 12},
|
||||
[]byte{11, 7, 12, 8, 12, 2, 7, 3, 10, 15, 6, 7, 5, 6, 1, 2, 11, 12, 8, 14, 14, 6, 8, 12, 7, 10, 4, 1, 9, 11, 6, 7, 1, 14, 6, 7, 8, 14, 6, 3, 15, 11, 9, 14, 13, 6, 2, 6, 4, 6, 3, 5, 8, 13, 7, 0, 10, 13, 11, 8, 2, 4, 3, 4, 16},
|
||||
[]byte{11, 7, 15},
|
||||
[]byte{11, 7, 15, 12, 8, 11, 1, 12, 12, 0, 5, 5, 13, 13, 9, 4, 10, 0, 15, 5, 9, 8, 15, 5, 12, 14, 4, 15, 8, 14, 1, 2, 1, 10, 8, 14, 3, 14, 4, 10, 12, 7, 5, 2, 11, 0, 2, 7, 11, 10, 3, 14, 2, 14, 9, 9, 14, 13, 1, 0, 12, 7, 11, 8, 16},
|
||||
[]byte{11, 8},
|
||||
[]byte{11, 8, 8},
|
||||
[]byte{11, 8, 8, 6, 4, 12, 11, 7, 12, 6, 2, 1, 5, 14, 9, 9, 15, 15, 14, 5, 13, 11, 7, 11, 2, 2, 11, 3, 1, 2, 9, 14, 9, 3, 11, 9, 10, 3, 8, 11, 9, 11, 5, 4, 1, 9, 3, 10, 0, 14, 3, 13, 7, 12, 8, 2, 5, 1, 6, 5, 7, 1, 7, 3, 16},
|
||||
[]byte{11, 8, 15},
|
||||
[]byte{11, 8, 15, 3, 7, 10, 6, 1, 12, 2, 6, 13, 3, 8, 8, 3, 0, 6, 10, 13, 9, 13, 14, 14, 2, 5, 14, 7, 2, 10, 10, 8, 6, 10, 4, 9, 9, 0, 3, 10, 1, 15, 11, 11, 14, 6, 2, 0, 5, 2, 1, 1, 11, 4, 7, 13, 1, 15, 3, 9, 15, 7, 7, 15, 16},
|
||||
[]byte{11, 9},
|
||||
[]byte{11, 9, 10, 15, 7, 2, 15, 12, 0, 5, 3, 4, 10, 4, 10, 5, 10, 9, 4, 14, 11, 1, 15, 6, 4, 12, 11, 1, 11, 13, 6, 12, 4, 2, 5, 10, 12, 11, 10, 3, 2, 4, 9, 15, 11, 8, 4, 4, 1, 14, 7, 4, 1, 1, 14, 9, 11, 14, 9, 14, 12, 1, 15, 3, 16},
|
||||
[]byte{11, 11},
|
||||
[]byte{11, 11, 6, 2, 14, 8, 13, 8, 13, 0, 14, 11, 3, 13, 7, 4, 3, 2, 7, 5, 8, 12, 2, 4, 4, 1, 3, 1, 15, 1, 6, 4, 9, 8, 7, 4, 3, 6, 7, 12, 12, 5, 2, 10, 4, 15, 10, 4, 15, 13, 0, 6, 0, 9, 13, 14, 15, 9, 14, 5, 7, 3, 8, 9, 16},
|
||||
[]byte{11, 12},
|
||||
[]byte{11, 12, 0, 12, 11, 5, 9, 1, 10, 6, 7, 8, 2, 2, 14, 8, 8, 13, 12, 14, 11, 11, 8, 9, 9, 1, 11, 12, 10, 5, 11, 7, 3, 0, 5, 11, 5, 8, 5, 8, 13, 6, 5, 11, 12, 2, 11, 5, 14, 6, 6, 0, 5, 14, 4, 8, 1, 10, 6, 5, 0, 5, 8, 8, 16},
|
||||
[]byte{11, 13},
|
||||
[]byte{11, 13, 13, 14, 12, 6, 5, 1, 6, 5, 2, 14, 0, 10, 10, 1, 7, 14, 0, 5, 6, 13, 14, 1, 7, 9, 0, 5, 5, 4, 10, 14, 12, 10, 5, 15, 10, 2, 4, 8, 12, 14, 12, 12, 4, 1, 3, 1, 13, 1, 8, 9, 13, 10, 12, 13, 2, 6, 12, 4, 12, 10, 5, 5, 16},
|
||||
[]byte{11, 14},
|
||||
[]byte{11, 14, 0},
|
||||
[]byte{11, 14, 0, 1},
|
||||
[]byte{11, 14, 0, 1, 7, 7, 1, 0, 13, 6, 11, 15, 11, 0, 10, 12, 7, 10, 8, 13, 1, 4, 0, 3, 3, 3, 1, 2, 7, 5, 7, 1, 8, 0, 9, 14, 10, 15, 2, 11, 5, 9, 0, 9, 0, 0, 15, 1, 6, 8, 5, 4, 5, 13, 10, 14, 10, 3, 8, 6, 5, 15, 6, 0, 16},
|
||||
[]byte{11, 14, 0, 3},
|
||||
[]byte{11, 14, 0, 3, 15, 5, 0, 13, 5, 8, 15, 14, 14, 6, 9, 1, 2, 13, 13, 11, 6, 12, 13, 15, 13, 5, 12, 2, 6, 3, 0, 2, 13, 11, 9, 4, 12, 9, 8, 6, 10, 13, 6, 9, 14, 11, 4, 14, 7, 15, 11, 3, 2, 7, 6, 8, 6, 3, 6, 11, 12, 9, 14, 6, 16},
|
||||
[]byte{11, 14, 8},
|
||||
[]byte{11, 14, 8, 15, 0, 10, 3, 13, 1, 12, 2, 13, 7, 10, 0, 15, 12, 2, 3, 4, 2, 15, 9, 10, 4, 12, 7, 8, 14, 0, 0, 15, 14, 3, 8, 10, 7, 15, 2, 6, 13, 10, 3, 4, 5, 7, 5, 8, 12, 11, 2, 11, 8, 14, 15, 13, 0, 5, 2, 11, 12, 13, 5, 5, 16},
|
||||
[]byte{11, 14, 13},
|
||||
[]byte{11, 14, 13, 10, 4, 11, 3, 4, 6, 7, 4, 15, 3, 11, 9, 13, 0, 10, 10, 15, 6, 12, 3, 9, 4, 6, 12, 0, 5, 11, 7, 3, 11, 4, 14, 7, 10, 12, 6, 8, 0, 12, 7, 0, 8, 4, 13, 4, 1, 13, 12, 8, 15, 0, 11, 13, 3, 11, 11, 3, 8, 0, 3, 1, 16},
|
||||
[]byte{12},
|
||||
[]byte{12, 0},
|
||||
[]byte{12, 0, 0},
|
||||
[]byte{12, 0, 0, 12, 2, 8, 10, 6, 11, 15, 14, 2, 8, 2, 9, 6, 1, 3, 4, 3, 2, 10, 2, 12, 2, 1, 14, 14, 15, 12, 2, 5, 13, 10, 5, 11, 10, 13, 9, 8, 3, 12, 5, 4, 3, 0, 12, 10, 2, 8, 11, 12, 1, 10, 9, 2, 13, 2, 11, 6, 5, 14, 12, 5, 16},
|
||||
[]byte{12, 0, 1},
|
||||
[]byte{12, 0, 1, 3},
|
||||
[]byte{12, 0, 1, 3, 1, 8, 10, 12, 6, 14, 0, 13, 2, 12, 12, 0, 8, 4, 6, 8, 10, 11, 12, 1, 13, 15, 6, 15, 2, 12, 9, 14, 12, 3, 15, 12, 5, 12, 15, 11, 15, 14, 5, 14, 15, 14, 12, 8, 3, 10, 10, 11, 2, 5, 0, 12, 15, 12, 8, 3, 14, 15, 3, 15, 16},
|
||||
[]byte{12, 0, 1, 11},
|
||||
[]byte{12, 0, 1, 11, 3, 8, 5, 7, 9, 4, 6, 12, 11, 7, 7, 10, 15, 9, 15, 11, 0, 9, 3, 9, 4, 12, 4, 10, 3, 5, 9, 15, 11, 10, 6, 13, 15, 2, 0, 2, 12, 7, 7, 13, 3, 14, 0, 7, 14, 5, 3, 1, 7, 7, 15, 3, 15, 1, 8, 10, 5, 5, 15, 2, 16},
|
||||
[]byte{12, 0, 15},
|
||||
[]byte{12, 0, 15, 4, 15, 13, 14, 4, 7, 4, 1, 8, 1, 15, 12, 10, 3, 13, 1, 15, 11, 6, 14, 0, 13, 12, 1, 1, 8, 10, 7, 1, 4, 5, 7, 15, 14, 7, 12, 12, 5, 13, 4, 15, 1, 14, 4, 2, 6, 12, 9, 2, 14, 1, 7, 6, 7, 14, 11, 8, 8, 5, 10, 0, 16},
|
||||
[]byte{12, 2},
|
||||
[]byte{12, 2, 9},
|
||||
[]byte{12, 2, 9, 1, 1, 11, 7, 5, 11, 14, 7, 13, 3, 15, 13, 11, 9, 4, 4, 2, 11, 9, 0, 0, 12, 10, 8, 15, 7, 2, 0, 5, 13, 6, 13, 5, 2, 15, 13, 11, 3, 5, 0, 5, 14, 7, 7, 14, 10, 8, 6, 7, 6, 15, 8, 1, 1, 10, 6, 13, 5, 14, 10, 1, 16},
|
||||
[]byte{12, 2, 12},
|
||||
[]byte{12, 2, 12, 15, 8, 14, 0, 5, 4, 5, 0, 11, 14, 6, 13, 2, 12, 9, 8, 14, 13, 12, 5, 13, 15, 2, 1, 9, 10, 4, 12, 11, 13, 8, 6, 13, 12, 6, 0, 6, 6, 7, 11, 4, 10, 7, 8, 1, 0, 2, 5, 7, 1, 7, 7, 13, 12, 7, 3, 2, 1, 7, 14, 13, 16},
|
||||
[]byte{12, 4},
|
||||
[]byte{12, 4, 9, 2, 4, 1, 8, 2, 9, 4, 4, 6, 10, 13, 5, 7, 0, 11, 5, 11, 9, 7, 13, 3, 8, 10, 5, 0, 4, 7, 8, 2, 10, 6, 5, 2, 2, 2, 0, 4, 12, 6, 7, 13, 5, 15, 2, 9, 11, 6, 1, 5, 1, 5, 2, 4, 6, 13, 0, 4, 1, 0, 13, 12, 16},
|
||||
[]byte{12, 5},
|
||||
[]byte{12, 5, 7, 9, 7, 5, 10, 14, 6, 9, 0, 15, 9, 10, 6, 5, 5, 4, 0, 1, 5, 4, 5, 9, 13, 11, 6, 12, 1, 3, 14, 8, 12, 6, 13, 11, 15, 6, 14, 4, 12, 12, 0, 15, 5, 12, 15, 9, 8, 6, 10, 15, 13, 1, 2, 1, 0, 12, 2, 3, 3, 10, 11, 15, 16},
|
||||
[]byte{12, 6},
|
||||
[]byte{12, 6, 0},
|
||||
[]byte{12, 6, 0, 15, 7, 0, 6, 9, 9, 0, 4, 2, 4, 7, 7, 7, 2, 7, 14, 7, 2, 3, 0, 15, 6, 4, 11, 5, 12, 9, 4, 13, 8, 13, 12, 11, 2, 12, 7, 8, 1, 5, 15, 8, 12, 2, 5, 4, 2, 7, 2, 2, 15, 12, 14, 15, 9, 0, 0, 13, 13, 2, 3, 8, 16},
|
||||
[]byte{12, 6, 4},
|
||||
[]byte{12, 6, 4, 7, 4, 1, 1, 0, 14, 13, 14, 14, 15, 5, 9, 12, 4, 8, 8, 4, 1, 11, 3, 5, 10, 14, 13, 3, 7, 0, 5, 7, 15, 14, 11, 2, 1, 1, 14, 7, 3, 8, 1, 2, 4, 2, 8, 5, 10, 2, 3, 3, 14, 7, 7, 14, 5, 3, 1, 5, 2, 10, 5, 7, 16},
|
||||
[]byte{12, 6, 14},
|
||||
[]byte{12, 6, 14, 7, 15, 2, 14, 15, 7, 5, 8, 5, 1, 10, 2, 11, 7, 5, 2, 14, 11, 2, 4, 7, 11, 5, 7, 0, 1, 10, 10, 5, 15, 2, 4, 13, 0, 12, 8, 6, 7, 5, 3, 4, 3, 3, 0, 12, 7, 4, 12, 5, 1, 12, 1, 10, 14, 9, 1, 3, 1, 9, 15, 7, 16},
|
||||
[]byte{12, 7},
|
||||
[]byte{12, 7, 0},
|
||||
[]byte{12, 7, 0, 5, 6, 1, 9, 14, 11, 7, 10, 9, 7, 10, 0, 1, 13, 2, 4, 14, 2, 1, 12, 13, 10, 9, 8, 0, 6, 6, 13, 4, 0, 10, 14, 11, 6, 13, 6, 12, 14, 6, 15, 11, 9, 14, 9, 10, 4, 8, 8, 0, 13, 8, 6, 15, 14, 4, 4, 3, 2, 11, 1, 3, 16},
|
||||
[]byte{12, 7, 12},
|
||||
[]byte{12, 7, 12, 10, 10, 9, 0, 7, 4, 4, 15, 6, 11, 0, 14, 1, 15, 10, 13, 15, 12, 5, 12, 2, 1, 12, 12, 12, 5, 13, 14, 0, 0, 5, 7, 4, 4, 7, 13, 6, 1, 6, 0, 8, 3, 5, 14, 3, 5, 14, 2, 5, 10, 8, 2, 15, 12, 3, 9, 1, 13, 0, 5, 1, 16},
|
||||
[]byte{12, 7, 13},
|
||||
[]byte{12, 7, 13, 13, 5, 10, 11, 8, 1, 13, 7, 7, 5, 13, 5, 12, 8, 11, 2, 8, 3, 13, 13, 15, 7, 8, 7, 11, 12, 8, 8, 12, 6, 1, 14, 7, 6, 6, 11, 7, 11, 4, 1, 8, 12, 0, 13, 6, 3, 7, 5, 6, 8, 3, 15, 5, 9, 15, 14, 6, 14, 5, 10, 9, 16},
|
||||
[]byte{12, 9},
|
||||
[]byte{12, 9, 3, 14, 1, 8, 3, 10, 9, 13, 13, 0, 9, 12, 13, 13, 4, 4, 12, 10, 2, 10, 9, 14, 11, 6, 11, 9, 4, 15, 9, 7, 0, 15, 8, 15, 10, 3, 0, 9, 11, 0, 15, 9, 12, 15, 13, 8, 2, 3, 5, 7, 2, 12, 2, 3, 10, 10, 13, 5, 8, 15, 11, 2, 16},
|
||||
[]byte{12, 11},
|
||||
[]byte{12, 11, 4, 4, 2, 9, 7, 9, 5, 8, 12, 8, 2, 15, 14, 8, 0, 15, 11, 8, 8, 2, 15, 2, 12, 8, 10, 0, 8, 5, 10, 3, 8, 5, 5, 6, 2, 4, 7, 11, 3, 12, 3, 15, 6, 6, 5, 14, 12, 10, 3, 8, 2, 13, 2, 7, 14, 2, 6, 14, 3, 11, 11, 12, 16},
|
||||
[]byte{12, 12},
|
||||
[]byte{12, 12, 14, 4, 6, 2, 0, 4, 11, 10, 10, 8, 6, 15, 7, 3, 3, 10, 11, 15, 2, 0, 8, 11, 3, 5, 8, 11, 10, 8, 11, 8, 0, 7, 0, 8, 1, 13, 6, 13, 4, 6, 10, 4, 0, 7, 7, 4, 5, 2, 3, 8, 10, 14, 15, 2, 12, 1, 3, 3, 15, 13, 4, 13, 16},
|
||||
[]byte{13},
|
||||
[]byte{13, 2},
|
||||
[]byte{13, 2, 0},
|
||||
[]byte{13, 2, 0, 7, 11, 0, 5, 11, 6, 8, 4, 11, 10, 1, 8, 3, 6, 1, 13, 15, 8, 14, 8, 1, 14, 8, 4, 6, 13, 1, 0, 3, 6, 5, 15, 15, 12, 15, 0, 4, 15, 7, 8, 4, 0, 4, 0, 3, 12, 5, 11, 10, 12, 15, 7, 7, 10, 13, 13, 4, 12, 5, 0, 15, 16},
|
||||
[]byte{13, 2, 2},
|
||||
[]byte{13, 2, 2, 2, 1, 2, 5, 7, 2, 4, 11, 9, 13, 15, 1, 15, 4, 10, 9, 2, 14, 1, 2, 8, 4, 13, 11, 12, 8, 7, 1, 10, 9, 1, 5, 6, 12, 2, 5, 3, 5, 7, 2, 13, 15, 0, 10, 3, 8, 10, 14, 1, 4, 6, 10, 12, 0, 3, 11, 6, 2, 10, 15, 4, 16},
|
||||
[]byte{13, 2, 4},
|
||||
[]byte{13, 2, 4, 14, 8, 15, 15, 15, 2, 0, 12, 5, 3, 1, 7, 0, 7, 4, 12, 5, 4, 15, 13, 5, 4, 12, 10, 9, 15, 1, 15, 12, 8, 15, 14, 15, 3, 6, 11, 11, 7, 0, 12, 4, 4, 11, 5, 5, 15, 9, 0, 10, 7, 0, 12, 6, 2, 1, 11, 9, 1, 15, 9, 10, 16},
|
||||
[]byte{13, 3},
|
||||
[]byte{13, 3, 7},
|
||||
[]byte{13, 3, 7, 4, 7, 6, 10, 1, 7, 8, 14, 14, 6, 8, 11, 0, 2, 11, 3, 13, 14, 0, 14, 13, 14, 14, 1, 14, 11, 11, 5, 7, 14, 1, 6, 3, 8, 14, 14, 11, 15, 5, 8, 11, 3, 14, 2, 5, 6, 3, 2, 2, 14, 0, 13, 10, 1, 1, 8, 9, 15, 2, 7, 2, 16},
|
||||
[]byte{13, 3, 10},
|
||||
[]byte{13, 3, 10, 7, 14, 5, 9, 15, 8, 8, 8, 10, 7, 10, 12, 0, 7, 10, 2, 1, 1, 12, 7, 1, 7, 12, 0, 7, 11, 8, 2, 9, 7, 0, 13, 9, 4, 5, 9, 7, 15, 6, 3, 6, 5, 12, 15, 8, 12, 9, 3, 13, 5, 1, 10, 12, 9, 13, 4, 5, 12, 5, 9, 7, 16},
|
||||
[]byte{13, 5},
|
||||
[]byte{13, 5, 2, 6, 8, 8, 10, 8, 15, 9, 2, 6, 12, 8, 1, 6, 12, 10, 1, 14, 0, 7, 9, 0, 6, 7, 12, 10, 11, 10, 9, 4, 4, 15, 1, 5, 8, 14, 7, 6, 4, 8, 1, 7, 11, 8, 3, 15, 12, 4, 3, 5, 9, 4, 3, 7, 0, 12, 10, 9, 12, 15, 6, 2, 16},
|
||||
[]byte{13, 8},
|
||||
[]byte{13, 8, 1},
|
||||
[]byte{13, 8, 1, 12, 5, 13, 5, 5, 9, 11, 10, 8, 7, 0, 14, 9, 0, 10, 2, 11, 6, 1, 7, 12, 15, 0, 5, 4, 2, 6, 9, 5, 14, 9, 10, 6, 2, 6, 6, 1, 9, 11, 5, 9, 1, 4, 8, 11, 4, 0, 2, 9, 5, 10, 0, 11, 10, 5, 5, 12, 10, 6, 6, 14, 16},
|
||||
[]byte{13, 8, 15},
|
||||
[]byte{13, 8, 15, 15, 12, 11, 12, 0, 11, 14, 3, 8, 3, 0, 6, 14, 5, 3, 9, 13, 10, 6, 1, 6, 1, 6, 1, 12, 6, 4, 14, 15, 7, 11, 12, 0, 15, 0, 2, 8, 1, 13, 6, 2, 14, 5, 2, 9, 6, 11, 12, 8, 14, 11, 6, 14, 10, 7, 0, 9, 12, 11, 0, 11, 16},
|
||||
[]byte{13, 9},
|
||||
[]byte{13, 9, 0},
|
||||
[]byte{13, 9, 0, 11, 12, 13, 14, 12, 11, 4, 4, 10, 3, 4, 0, 2, 14, 2, 10, 1, 11, 5, 13, 3, 10, 3, 2, 1, 11, 5, 1, 14, 4, 1, 5, 14, 2, 9, 8, 14, 11, 10, 12, 10, 3, 12, 9, 5, 13, 9, 1, 4, 4, 3, 10, 13, 12, 0, 3, 15, 6, 12, 14, 12, 16},
|
||||
[]byte{13, 9, 14},
|
||||
[]byte{13, 9, 14, 13, 3, 5, 8, 5, 2, 6, 5, 0, 15, 2, 8, 13, 7, 10, 8, 15, 7, 3, 12, 7, 11, 10, 4, 9, 11, 12, 13, 7, 2, 13, 9, 7, 14, 13, 15, 8, 13, 7, 3, 1, 7, 9, 7, 14, 5, 10, 2, 7, 2, 8, 5, 5, 9, 11, 8, 6, 5, 5, 5, 2, 16},
|
||||
[]byte{13, 10},
|
||||
[]byte{13, 10, 0, 13, 7, 15, 12, 0, 5, 12, 3, 2, 11, 11, 11, 10, 1, 6, 5, 1, 8, 15, 9, 15, 2, 9, 3, 6, 15, 13, 7, 5, 1, 4, 0, 13, 5, 12, 9, 9, 11, 9, 5, 10, 14, 5, 3, 6, 2, 0, 5, 11, 10, 9, 12, 10, 15, 1, 8, 6, 8, 3, 7, 8, 16},
|
||||
[]byte{13, 12},
|
||||
[]byte{13, 12, 8},
|
||||
[]byte{13, 12, 8, 8, 2, 9, 2, 6, 1, 11, 6, 11, 15, 13, 5, 3, 10, 11, 7, 13, 10, 10, 12, 3, 0, 5, 12, 2, 10, 13, 0, 14, 13, 1, 5, 4, 2, 3, 2, 3, 4, 1, 2, 8, 11, 13, 12, 5, 11, 8, 6, 10, 2, 14, 9, 14, 10, 15, 6, 1, 5, 7, 14, 4, 16},
|
||||
[]byte{13, 12, 11},
|
||||
[]byte{13, 12, 11, 10, 13, 7, 10, 12, 12, 8, 15, 15, 4, 11, 11, 5, 5, 6, 2, 13, 12, 1, 10, 3, 7, 14, 8, 7, 2, 4, 4, 13, 15, 1, 1, 14, 13, 7, 5, 4, 15, 8, 15, 2, 5, 14, 11, 11, 6, 15, 12, 2, 3, 3, 2, 0, 14, 5, 2, 6, 8, 11, 3, 15, 16},
|
||||
[]byte{13, 13},
|
||||
[]byte{13, 13, 7},
|
||||
[]byte{13, 13, 7, 10, 13, 9, 6, 7, 3, 15, 8, 2, 3, 4, 4, 4, 14, 5, 1, 9, 4, 13, 5, 10, 11, 0, 14, 12, 10, 9, 10, 1, 15, 11, 7, 11, 13, 3, 7, 7, 0, 13, 0, 15, 13, 12, 6, 2, 12, 14, 3, 14, 1, 8, 0, 0, 3, 7, 1, 5, 8, 7, 7, 3, 16},
|
||||
[]byte{13, 13, 12},
|
||||
[]byte{13, 13, 12, 4, 8, 10, 15, 11, 13, 11, 1, 6, 6, 1, 12, 8, 7, 8, 9, 11, 4, 4, 7, 15, 5, 8, 1, 10, 14, 0, 7, 14, 11, 1, 8, 6, 3, 11, 2, 4, 14, 5, 0, 8, 6, 5, 13, 15, 10, 12, 10, 12, 15, 0, 10, 14, 15, 7, 10, 4, 15, 9, 13, 12, 16},
|
||||
[]byte{13, 14},
|
||||
[]byte{13, 14, 6, 14, 6, 15, 12, 10, 14, 15, 12, 3, 9, 15, 0, 5, 14, 5, 9, 1, 2, 0, 1, 4, 0, 9, 3, 15, 3, 8, 9, 2, 6, 9, 8, 7, 11, 11, 7, 11, 1, 2, 5, 14, 5, 1, 11, 4, 9, 13, 13, 15, 11, 4, 9, 11, 0, 3, 14, 3, 6, 12, 5, 0, 16},
|
||||
[]byte{14},
|
||||
[]byte{14, 0},
|
||||
[]byte{14, 0, 1, 5, 13, 2, 14, 4, 12, 0, 8, 5, 2, 9, 1, 6, 1, 1, 2, 9, 8, 4, 6, 0, 6, 0, 2, 11, 9, 1, 3, 11, 5, 15, 1, 9, 2, 7, 2, 7, 1, 5, 15, 12, 10, 10, 4, 8, 2, 5, 8, 14, 15, 14, 2, 4, 12, 15, 2, 1, 8, 8, 5, 14, 16},
|
||||
[]byte{14, 1},
|
||||
[]byte{14, 1, 14, 2, 3, 6, 9, 0, 14, 8, 9, 0, 12, 13, 14, 12, 6, 14, 11, 1, 9, 11, 0, 6, 15, 5, 13, 3, 1, 13, 4, 2, 2, 11, 5, 12, 1, 7, 11, 13, 4, 12, 4, 3, 5, 10, 15, 11, 2, 10, 2, 5, 3, 2, 1, 8, 0, 0, 1, 1, 4, 5, 3, 15, 16},
|
||||
[]byte{14, 2},
|
||||
[]byte{14, 2, 2},
|
||||
[]byte{14, 2, 2, 13, 4, 9, 6, 12, 4, 2, 5, 4, 7, 9, 10, 12, 11, 4, 4, 5, 12, 4, 0, 4, 0, 11, 13, 11, 5, 14, 1, 7, 15, 10, 4, 6, 1, 13, 14, 1, 7, 5, 14, 10, 10, 10, 7, 7, 10, 10, 7, 9, 14, 2, 3, 11, 5, 11, 1, 9, 15, 7, 6, 1, 16},
|
||||
[]byte{14, 2, 12},
|
||||
[]byte{14, 2, 12, 8, 11, 11, 15, 9, 6, 2, 12, 3, 0, 10, 15, 14, 9, 12, 3, 5, 14, 9, 13, 7, 14, 0, 3, 6, 14, 15, 4, 9, 6, 11, 5, 2, 12, 11, 7, 7, 0, 12, 6, 4, 5, 10, 7, 6, 15, 2, 12, 14, 14, 5, 15, 8, 8, 1, 1, 10, 9, 8, 3, 0, 16},
|
||||
[]byte{14, 3},
|
||||
[]byte{14, 3, 6, 12, 0, 15, 1, 5, 4, 10, 3, 6, 5, 14, 0, 8, 6, 12, 6, 8, 7, 0, 5, 0, 12, 14, 14, 7, 4, 11, 13, 13, 13, 14, 9, 9, 9, 7, 10, 1, 13, 14, 13, 14, 11, 0, 14, 5, 5, 2, 1, 7, 3, 6, 8, 12, 0, 10, 11, 6, 11, 10, 10, 4, 16},
|
||||
[]byte{14, 4},
|
||||
[]byte{14, 4, 2, 9, 5, 12, 5, 10, 10, 0, 4, 3, 10, 6, 0, 13, 2, 7, 9, 8, 5, 4, 15, 7, 4, 2, 4, 14, 2, 1, 2, 5, 0, 13, 5, 12, 1, 14, 1, 15, 9, 9, 5, 9, 5, 4, 9, 14, 9, 0, 11, 12, 9, 2, 6, 13, 7, 0, 14, 9, 7, 0, 6, 8, 16},
|
||||
[]byte{14, 5},
|
||||
[]byte{14, 5, 5, 11, 7, 3, 4, 13, 15, 3, 5, 10, 11, 6, 13, 5, 7, 6, 6, 0, 7, 14, 0, 1, 12, 4, 2, 15, 2, 1, 13, 2, 7, 5, 12, 13, 9, 12, 0, 15, 8, 6, 15, 11, 11, 3, 1, 0, 0, 2, 4, 1, 10, 1, 4, 11, 10, 0, 12, 7, 6, 7, 2, 15, 16},
|
||||
[]byte{14, 6},
|
||||
[]byte{14, 6, 9},
|
||||
[]byte{14, 6, 9, 0, 11, 2, 3, 9, 11, 10, 3, 10, 10, 15, 9, 9, 3, 14, 4, 4, 3, 10, 14, 1, 4, 10, 14, 15, 15, 12, 4, 4, 12, 15, 8, 13, 9, 9, 3, 1, 10, 7, 9, 11, 10, 14, 13, 9, 15, 10, 1, 4, 1, 13, 0, 14, 4, 5, 0, 6, 14, 1, 3, 1, 16},
|
||||
[]byte{14, 6, 12},
|
||||
[]byte{14, 6, 12, 0, 5, 12, 2, 14, 11, 10, 12, 6, 8, 13, 15, 1, 1, 0, 11, 9, 9, 6, 6, 12, 11, 15, 9, 2, 4, 1, 4, 10, 6, 13, 13, 12, 15, 3, 11, 6, 7, 15, 12, 7, 7, 9, 0, 1, 10, 5, 15, 10, 0, 4, 9, 13, 10, 0, 12, 15, 11, 1, 0, 9, 16},
|
||||
[]byte{14, 7},
|
||||
[]byte{14, 7, 4},
|
||||
[]byte{14, 7, 4, 8, 3, 2, 0, 14, 13, 12, 6, 10, 9, 12, 3, 0, 13, 2, 4, 9, 13, 7, 5, 10, 15, 7, 4, 10, 1, 9, 10, 13, 14, 7, 15, 6, 9, 12, 5, 6, 14, 5, 14, 0, 13, 3, 10, 9, 10, 13, 11, 1, 7, 15, 14, 14, 1, 11, 0, 10, 4, 11, 14, 15, 16},
|
||||
[]byte{14, 7, 12},
|
||||
[]byte{14, 7, 12, 15, 1, 8, 11, 9, 6, 10, 1, 12, 1, 2, 5, 0, 7, 12, 9, 10, 9, 5, 11, 7, 15, 4, 8, 12, 3, 14, 0, 1, 2, 6, 5, 1, 7, 9, 3, 10, 1, 9, 6, 12, 14, 2, 11, 8, 1, 10, 10, 10, 6, 12, 11, 1, 8, 5, 13, 12, 0, 3, 11, 6, 16},
|
||||
[]byte{14, 8},
|
||||
[]byte{14, 8, 3},
|
||||
[]byte{14, 8, 3, 12, 2, 12, 5, 6, 15, 3, 5, 1, 13, 8, 12, 2, 5, 8, 6, 3, 10, 5, 5, 14, 12, 14, 9, 3, 8, 15, 15, 12, 11, 6, 12, 13, 15, 2, 9, 7, 8, 14, 11, 3, 4, 14, 10, 1, 10, 1, 9, 5, 9, 1, 8, 8, 4, 13, 3, 8, 8, 5, 15, 3, 16},
|
||||
[]byte{14, 8, 12},
|
||||
[]byte{14, 8, 12, 0},
|
||||
[]byte{14, 8, 12, 0, 7, 11, 10, 11, 8, 8, 2, 2, 14, 14, 14, 11, 8, 7, 5, 2, 3, 6, 14, 1, 4, 8, 15, 7, 8, 1, 3, 4, 1, 1, 5, 7, 15, 9, 11, 15, 12, 5, 6, 12, 1, 12, 5, 3, 9, 7, 2, 4, 8, 9, 15, 15, 4, 0, 0, 9, 6, 9, 5, 11, 16},
|
||||
[]byte{14, 8, 12, 6},
|
||||
[]byte{14, 8, 12, 6, 11, 4, 1, 0, 14, 2, 9, 8, 4, 11, 14, 3, 11, 14, 13, 9, 10, 8, 4, 11, 7, 6, 15, 11, 11, 13, 6, 4, 7, 15, 5, 15, 10, 5, 6, 14, 6, 5, 14, 3, 6, 12, 2, 6, 4, 9, 0, 3, 2, 7, 5, 10, 10, 2, 2, 12, 13, 11, 0, 13, 16},
|
||||
[]byte{14, 10},
|
||||
[]byte{14, 10, 6},
|
||||
[]byte{14, 10, 6, 7, 4, 14, 6, 0, 3, 15, 6, 0, 11, 10, 1, 14, 2, 5, 2, 4, 1, 9, 13, 8, 6, 13, 0, 4, 8, 5, 15, 13, 3, 15, 4, 6, 12, 10, 6, 10, 11, 11, 15, 4, 12, 6, 5, 10, 15, 14, 14, 0, 10, 9, 11, 10, 2, 9, 0, 5, 9, 6, 5, 5, 16},
|
||||
[]byte{14, 10, 12},
|
||||
[]byte{14, 10, 12, 11, 11, 8, 6, 14, 12, 5, 1, 8, 11, 10, 10, 7, 1, 0, 13, 14, 10, 5, 14, 13, 9, 8, 6, 1, 6, 2, 15, 2, 1, 13, 15, 2, 10, 9, 8, 13, 2, 1, 1, 9, 15, 6, 12, 10, 12, 11, 11, 0, 1, 14, 8, 13, 9, 10, 7, 7, 10, 6, 2, 9, 16},
|
||||
[]byte{14, 11},
|
||||
[]byte{14, 11, 8},
|
||||
[]byte{14, 11, 8, 8, 5, 15, 10, 3, 7, 14, 15, 7, 14, 6, 8, 6, 10, 7, 15, 8, 13, 13, 3, 13, 9, 0, 0, 4, 13, 14, 5, 5, 5, 5, 2, 6, 3, 1, 0, 14, 7, 8, 13, 12, 11, 15, 8, 5, 7, 12, 9, 11, 0, 10, 3, 1, 14, 4, 0, 11, 9, 7, 3, 6, 16},
|
||||
[]byte{14, 11, 13},
|
||||
[]byte{14, 11, 13, 4, 13, 9, 6, 4, 13, 15, 1, 9, 12, 1, 5, 9, 8, 13, 3, 12, 14, 8, 3, 5, 4, 4, 9, 8, 15, 4, 15, 0, 12, 10, 13, 11, 3, 9, 13, 7, 0, 0, 10, 15, 1, 5, 11, 10, 6, 10, 4, 2, 15, 8, 15, 6, 4, 4, 4, 12, 2, 7, 13, 0, 16},
|
||||
[]byte{14, 12},
|
||||
[]byte{14, 12, 10, 6, 12, 13, 13, 9, 7, 6, 8, 0, 9, 0, 15, 9, 0, 9, 6, 0, 12, 15, 9, 11, 10, 13, 4, 7, 7, 0, 5, 12, 10, 3, 11, 1, 9, 10, 5, 4, 12, 8, 14, 12, 8, 1, 8, 6, 14, 2, 9, 8, 7, 15, 15, 13, 13, 3, 10, 8, 4, 3, 5, 11, 16},
|
||||
[]byte{14, 14},
|
||||
[]byte{14, 14, 3},
|
||||
[]byte{14, 14, 3, 1, 7, 10, 7, 2, 12, 6, 6, 0, 4, 14, 9, 14, 4, 10, 11, 12, 11, 10, 1, 10, 13, 9, 13, 6, 1, 5, 9, 10, 0, 0, 13, 9, 1, 6, 8, 5, 5, 8, 11, 14, 8, 1, 9, 14, 4, 3, 9, 3, 9, 3, 6, 10, 10, 1, 14, 14, 14, 4, 3, 2, 16},
|
||||
[]byte{14, 14, 9},
|
||||
[]byte{14, 14, 9, 13, 6, 9, 15, 0, 2, 13, 1, 2, 4, 5, 9, 8, 5, 12, 10, 11, 3, 14, 13, 8, 1, 6, 11, 12, 8, 6, 1, 7, 7, 12, 8, 3, 14, 0, 7, 0, 1, 12, 12, 5, 5, 1, 5, 13, 14, 9, 9, 3, 2, 10, 10, 0, 6, 5, 8, 8, 6, 4, 0, 7, 16},
|
||||
[]byte{15},
|
||||
[]byte{15, 0},
|
||||
[]byte{15, 0, 3, 13, 11, 4, 15, 6, 1, 5, 4, 7, 12, 9, 13, 8, 12, 5, 8, 11, 4, 15, 3, 7, 15, 8, 4, 15, 7, 4, 14, 15, 15, 7, 6, 7, 12, 2, 4, 12, 15, 8, 1, 11, 9, 5, 7, 6, 6, 2, 14, 9, 6, 6, 2, 2, 15, 2, 10, 12, 4, 13, 1, 9, 16},
|
||||
[]byte{15, 5},
|
||||
[]byte{15, 5, 11, 6, 9, 3, 0, 8, 5, 11, 14, 11, 2, 1, 11, 0, 8, 7, 8, 12, 7, 14, 5, 15, 10, 11, 7, 5, 1, 9, 12, 14, 0, 13, 6, 1, 0, 5, 3, 5, 4, 12, 15, 6, 7, 4, 4, 13, 11, 15, 11, 7, 3, 14, 3, 7, 4, 5, 14, 9, 2, 9, 14, 4, 16},
|
||||
[]byte{15, 6},
|
||||
[]byte{15, 6, 7, 15, 4, 7, 0, 13, 15, 1, 5, 12, 8, 8, 11, 9, 11, 14, 10, 15, 3, 15, 10, 13, 7, 2, 8, 9, 0, 10, 6, 4, 15, 8, 8, 5, 1, 13, 0, 1, 14, 12, 14, 5, 4, 6, 11, 0, 12, 9, 15, 11, 3, 11, 13, 15, 9, 2, 0, 4, 1, 10, 3, 5, 16},
|
||||
[]byte{15, 9},
|
||||
[]byte{15, 9, 0},
|
||||
[]byte{15, 9, 0, 8, 13, 7, 8, 5, 12, 14, 15, 1, 10, 11, 12, 9, 15, 12, 14, 10, 5, 5, 12, 0, 7, 4, 9, 0, 13, 1, 6, 11, 4, 8, 2, 5, 14, 8, 10, 6, 10, 7, 12, 8, 15, 11, 1, 5, 7, 14, 13, 2, 9, 0, 0, 11, 15, 4, 10, 15, 5, 8, 11, 9, 16},
|
||||
[]byte{15, 9, 2},
|
||||
[]byte{15, 9, 2, 15, 9, 9, 1, 1, 14, 6, 13, 5, 11, 4, 0, 14, 4, 6, 15, 5, 7, 4, 13, 11, 0, 10, 4, 0, 6, 13, 3, 6, 0, 15, 9, 1, 12, 8, 13, 14, 8, 4, 2, 13, 14, 13, 4, 8, 12, 8, 12, 6, 9, 9, 0, 8, 0, 9, 8, 5, 11, 4, 12, 15, 16},
|
||||
[]byte{15, 9, 3},
|
||||
[]byte{15, 9, 3, 13, 4, 4, 7, 15, 12, 15, 8, 6, 15, 8, 4, 7, 14, 6, 6, 0, 9, 11, 15, 11, 3, 1, 0, 0, 10, 10, 5, 13, 0, 7, 13, 15, 3, 7, 15, 2, 12, 7, 2, 12, 11, 12, 4, 9, 6, 1, 14, 3, 10, 0, 15, 8, 6, 10, 7, 12, 2, 4, 11, 7, 16},
|
||||
[]byte{15, 11},
|
||||
[]byte{15, 11, 1},
|
||||
[]byte{15, 11, 1, 13, 6, 7, 9, 7, 7, 9, 6, 10, 13, 9, 14, 13, 13, 1, 11, 8, 11, 4, 1, 0, 3, 0, 0, 3, 5, 10, 0, 0, 3, 14, 11, 6, 2, 8, 6, 10, 14, 2, 15, 12, 1, 10, 8, 2, 9, 6, 11, 5, 0, 9, 8, 9, 1, 10, 12, 15, 10, 0, 3, 3, 16},
|
||||
[]byte{15, 11, 6},
|
||||
[]byte{15, 11, 6, 10, 11, 5, 1, 1, 12, 15, 5, 11, 12, 11, 1, 5, 7, 15, 8, 3, 3, 2, 4, 1, 14, 7, 4, 14, 10, 13, 7, 1, 2, 8, 10, 2, 1, 8, 1, 8, 12, 2, 11, 5, 0, 8, 0, 11, 14, 2, 1, 14, 14, 9, 15, 8, 5, 15, 15, 5, 13, 5, 2, 3, 16},
|
||||
[]byte{15, 12},
|
||||
[]byte{15, 12, 3},
|
||||
[]byte{15, 12, 3, 9, 11, 11, 12, 15, 0, 8, 8, 1, 8, 14, 12, 3, 3, 2, 9, 14, 5, 7, 6, 9, 13, 15, 15, 3, 15, 11, 13, 10, 13, 6, 6, 14, 6, 3, 1, 2, 10, 9, 6, 1, 10, 12, 11, 3, 2, 12, 1, 11, 2, 0, 3, 14, 13, 15, 7, 0, 10, 14, 11, 10, 16},
|
||||
[]byte{15, 12, 14},
|
||||
[]byte{15, 12, 14, 7},
|
||||
[]byte{15, 12, 14, 7, 3, 2, 1, 15, 2, 7, 8, 10, 2, 9, 7, 3, 11, 15, 5, 12, 6, 7, 7, 5, 7, 14, 10, 7, 6, 9, 0, 6, 4, 9, 2, 9, 5, 13, 5, 3, 9, 6, 7, 13, 10, 10, 3, 10, 14, 8, 5, 8, 6, 9, 5, 11, 14, 3, 3, 6, 10, 11, 14, 2, 16},
|
||||
[]byte{15, 12, 14, 13},
|
||||
[]byte{15, 12, 14, 13, 3, 4, 0, 8, 8, 5, 8, 2, 11, 4, 10, 7, 8, 15, 6, 1, 1, 12, 7, 3, 6, 6, 1, 9, 5, 14, 3, 14, 9, 4, 15, 9, 0, 8, 0, 6, 3, 7, 15, 4, 1, 0, 4, 11, 11, 11, 13, 0, 13, 0, 7, 15, 15, 11, 7, 8, 3, 13, 4, 9, 16},
|
||||
[]byte{15, 13},
|
||||
[]byte{15, 13, 15, 10, 12, 15, 5, 4, 8, 3, 15, 13, 13, 10, 2, 15, 12, 9, 8, 13, 0, 8, 11, 12, 12, 14, 1, 10, 6, 8, 13, 5, 13, 3, 0, 8, 13, 3, 10, 13, 8, 8, 14, 14, 2, 1, 11, 5, 0, 0, 0, 4, 15, 13, 6, 9, 4, 11, 10, 6, 15, 8, 0, 5, 16},
|
||||
[]byte{15, 14},
|
||||
[]byte{15, 14, 6, 10, 5, 8, 2, 0, 7, 7, 5, 0, 1, 9, 7, 15, 4, 8, 12, 11, 9, 0, 8, 6, 4, 0, 9, 6, 8, 5, 0, 2, 5, 9, 8, 4, 5, 12, 2, 12, 8, 14, 9, 0, 12, 7, 4, 4, 3, 3, 3, 2, 5, 12, 0, 11, 1, 4, 4, 11, 15, 8, 11, 11, 16},
|
||||
[]byte{15, 15},
|
||||
[]byte{15, 15, 15, 10, 0, 14, 10, 14, 2, 6, 8, 0, 3, 8, 12, 15, 10, 9, 8, 4, 6, 4, 7, 10, 1, 13, 0, 6, 3, 5, 11, 14, 11, 8, 6, 14, 13, 10, 9, 15, 11, 7, 11, 5, 0, 0, 6, 8, 8, 15, 3, 1, 8, 9, 5, 2, 0, 12, 15, 10, 9, 14, 14, 5, 16},
|
||||
}
|
164
concurrent_iterator/iterator.go
Normal file
164
concurrent_iterator/iterator.go
Normal file
@ -0,0 +1,164 @@
|
||||
//
|
||||
// Copyright © 2020 Vulcanize, Inc
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
package iterator
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"math/bits"
|
||||
|
||||
"github.com/ethereum/go-ethereum/core/state"
|
||||
"github.com/ethereum/go-ethereum/trie"
|
||||
)
|
||||
|
||||
// PrefixBoundIterator is a NodeIterator constrained by a lower & upper bound (as hex path prefixes)
|
||||
type PrefixBoundIterator struct {
|
||||
trie.NodeIterator
|
||||
StartPath []byte
|
||||
EndPath []byte
|
||||
}
|
||||
|
||||
func (it *PrefixBoundIterator) Next(descend bool) bool {
|
||||
if it.EndPath == nil {
|
||||
return it.NodeIterator.Next(descend)
|
||||
}
|
||||
if !it.NodeIterator.Next(descend) {
|
||||
return false
|
||||
}
|
||||
// stop if underlying iterator went past endKey
|
||||
cmp := bytes.Compare(it.Path(), it.EndPath)
|
||||
return cmp <= 0
|
||||
}
|
||||
|
||||
// Iterator with an upper bound value (hex path prefix)
|
||||
func NewPrefixBoundIterator(it trie.NodeIterator, from []byte, to []byte) *PrefixBoundIterator {
|
||||
return &PrefixBoundIterator{NodeIterator: it, StartPath: from, EndPath: to}
|
||||
}
|
||||
|
||||
// generates nibble slice prefixes at uniform intervals
|
||||
type prefixGenerator struct {
|
||||
current []byte
|
||||
step byte
|
||||
stepIndex uint
|
||||
}
|
||||
|
||||
func newPrefixGenerator(nbins uint) prefixGenerator {
|
||||
if bits.OnesCount(nbins) != 1 {
|
||||
panic("nbins must be a power of 2")
|
||||
}
|
||||
// determine step dist. and path index at which to step
|
||||
var step byte
|
||||
var stepIndex uint
|
||||
for ; nbins != 0; stepIndex++ {
|
||||
divisor := byte(nbins & 0xF)
|
||||
if divisor != 0 {
|
||||
step = 0x10 / divisor
|
||||
}
|
||||
nbins = nbins >> 4
|
||||
}
|
||||
return prefixGenerator{
|
||||
current: make([]byte, stepIndex),
|
||||
step: step,
|
||||
stepIndex: stepIndex - 1,
|
||||
}
|
||||
}
|
||||
|
||||
func (gen *prefixGenerator) Value() []byte {
|
||||
return gen.current
|
||||
}
|
||||
|
||||
func (gen *prefixGenerator) HasNext() bool {
|
||||
return gen.current[0] < 0x10
|
||||
}
|
||||
|
||||
func (gen *prefixGenerator) Next() {
|
||||
// increment the cursor, and handle overflow
|
||||
gen.current[gen.stepIndex] += gen.step
|
||||
overflow := false
|
||||
for ix := 0; ix < len(gen.current); ix++ {
|
||||
rix := len(gen.current) - 1 - ix // index in prefix is reverse
|
||||
if overflow { // apply overflow
|
||||
gen.current[rix]++
|
||||
overflow = false
|
||||
}
|
||||
// detect overflow at this index
|
||||
if rix != 0 && gen.current[rix] > 0xf {
|
||||
gen.current[rix] = 0
|
||||
overflow = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Generates paths that cut trie domain into `nbins` uniform conterminous bins (w/ opt. prefix)
|
||||
// eg. MakePaths([], 2) => [[0] [8]]
|
||||
// MakePaths([4], 32) => [[4 0 0] [4 0 8] [4 1 0]... [4 f 8]]
|
||||
func MakePaths(prefix []byte, nbins uint) [][]byte {
|
||||
var res [][]byte
|
||||
for it := newPrefixGenerator(nbins); it.HasNext(); it.Next() {
|
||||
next := make([]byte, len(prefix))
|
||||
copy(next, prefix)
|
||||
next = append(next, it.Value()...)
|
||||
res = append(res, next)
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func eachPrefixRange(prefix []byte, nbins uint, callback func([]byte, []byte)) {
|
||||
prefixes := MakePaths(prefix, nbins)
|
||||
prefixes = append(prefixes, nil) // include tail
|
||||
prefixes[0] = nil // set bin 0 left bound to nil to include root
|
||||
for i := 0; i < len(prefixes)-1; i++ {
|
||||
key := prefixes[i]
|
||||
if len(key)%2 != 0 { // zero-pad for odd-length keys
|
||||
key = append(key, 0)
|
||||
}
|
||||
callback(key, prefixes[i+1])
|
||||
}
|
||||
}
|
||||
|
||||
// Cut a trie by path prefix, returning `nbins` iterators covering its subtries
|
||||
func SubtrieIterators(tree state.Trie, nbins uint) []trie.NodeIterator {
|
||||
var iters []trie.NodeIterator
|
||||
eachPrefixRange(nil, nbins, func(from []byte, to []byte) {
|
||||
it := tree.NodeIterator(HexToKeyBytes(from))
|
||||
iters = append(iters, NewPrefixBoundIterator(it, from, to))
|
||||
})
|
||||
return iters
|
||||
}
|
||||
|
||||
// Factory for per-bin subtrie iterators
|
||||
type SubtrieIteratorFactory struct {
|
||||
tree state.Trie
|
||||
startPaths, endPaths [][]byte
|
||||
}
|
||||
|
||||
func (fac *SubtrieIteratorFactory) Length() int { return len(fac.startPaths) }
|
||||
|
||||
func (fac *SubtrieIteratorFactory) IteratorAt(bin uint) *PrefixBoundIterator {
|
||||
it := fac.tree.NodeIterator(HexToKeyBytes(fac.startPaths[bin]))
|
||||
return NewPrefixBoundIterator(it, fac.startPaths[bin], fac.endPaths[bin])
|
||||
}
|
||||
|
||||
// Cut a trie by path prefix, returning `nbins` iterators covering its subtries
|
||||
func NewSubtrieIteratorFactory(tree state.Trie, nbins uint) SubtrieIteratorFactory {
|
||||
starts := make([][]byte, 0, nbins)
|
||||
ends := make([][]byte, 0, nbins)
|
||||
eachPrefixRange(nil, nbins, func(key []byte, endKey []byte) {
|
||||
starts = append(starts, key)
|
||||
ends = append(ends, endKey)
|
||||
})
|
||||
return SubtrieIteratorFactory{tree: tree, startPaths: starts, endPaths: ends}
|
||||
}
|
100
concurrent_iterator/iterator_test.go
Normal file
100
concurrent_iterator/iterator_test.go
Normal file
@ -0,0 +1,100 @@
|
||||
package iterator_test
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/ethereum/go-ethereum/core/rawdb"
|
||||
"github.com/ethereum/go-ethereum/core/state"
|
||||
|
||||
iter "github.com/vulcanize/go-eth-state-node-iterator"
|
||||
fixt "github.com/vulcanize/go-eth-state-node-iterator/fixture"
|
||||
)
|
||||
|
||||
func TestMakePaths(t *testing.T) {
|
||||
var prefix []byte
|
||||
for i := 0; i < 4; i++ {
|
||||
nbins := uint(1) << i
|
||||
paths := iter.MakePaths(prefix, nbins)
|
||||
if len(paths) != int(nbins) {
|
||||
t.Errorf("wrong number of paths; expected %d, have %d", nbins, len(paths))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestIterator(t *testing.T) {
|
||||
edb, err := rawdb.NewLevelDBDatabaseWithFreezer(
|
||||
fixt.ChainDataPath, 1024, 256, fixt.AncientDataPath,
|
||||
"eth-pg-ipfs-state-snapshot", false,
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer edb.Close()
|
||||
|
||||
height := uint64(1)
|
||||
hash := rawdb.ReadCanonicalHash(edb, height)
|
||||
header := rawdb.ReadHeader(edb, hash, height)
|
||||
if header == nil {
|
||||
t.Fatalf("unable to read canonical header at height %d", height)
|
||||
}
|
||||
sdb := state.NewDatabase(edb)
|
||||
tree, err := sdb.OpenTrie(header.Root)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Run("in bounds", func(t *testing.T) {
|
||||
type testCase struct {
|
||||
lower, upper []byte
|
||||
}
|
||||
cases := []testCase{
|
||||
{nil, []byte{0, 0}},
|
||||
{[]byte{1, 0}, []byte{2, 0}},
|
||||
{[]byte{3, 5}, []byte{4, 2, 0}},
|
||||
{[]byte{5, 6, 9, 0}, []byte{7, 0}},
|
||||
{[]byte{8, 0}, []byte{8, 0}},
|
||||
{[]byte{8, 0}, []byte{7, 0}},
|
||||
}
|
||||
|
||||
runCase := func(t *testing.T, tc testCase) {
|
||||
it := iter.NewPrefixBoundIterator(tree.NodeIterator(iter.HexToKeyBytes(tc.lower)), tc.lower, tc.upper)
|
||||
for it.Next(true) {
|
||||
if bytes.Compare(it.Path(), tc.lower) < 0 {
|
||||
t.Fatalf("iterator outside lower bound: %v", it.Path())
|
||||
}
|
||||
if bytes.Compare(tc.upper, it.Path()) < 0 {
|
||||
t.Fatalf("iterator outside upper bound: %v <= %v", tc.upper, it.Path())
|
||||
}
|
||||
}
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run("case", func(t *testing.T) { runCase(t, tc) })
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("trie is covered", func(t *testing.T) {
|
||||
allPaths := fixt.Block1_Paths
|
||||
cases := []uint{1, 2, 4, 8, 16, 32}
|
||||
runCase := func(t *testing.T, nbins uint) {
|
||||
iters := iter.SubtrieIterators(tree, nbins)
|
||||
ix := 0
|
||||
for b := uint(0); b < nbins; b++ {
|
||||
for it := iters[b]; it.Next(true); ix++ {
|
||||
if !bytes.Equal(allPaths[ix], it.Path()) {
|
||||
t.Fatalf("wrong path value\nexpected:\t%v\nactual:\t\t%v",
|
||||
allPaths[ix], it.Path())
|
||||
}
|
||||
}
|
||||
// if the last node path was even-length, it will be duplicated
|
||||
if len(allPaths[ix-1])&0b1 == 0 {
|
||||
ix--
|
||||
}
|
||||
}
|
||||
}
|
||||
for _, tc := range cases {
|
||||
t.Run(fmt.Sprintf("%d bins", tc), func(t *testing.T) { runCase(t, tc) })
|
||||
}
|
||||
})
|
||||
}
|
243
concurrent_iterator/tracker/tracker.go
Normal file
243
concurrent_iterator/tracker/tracker.go
Normal file
@ -0,0 +1,243 @@
|
||||
package tracker
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"context"
|
||||
"encoding/csv"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"github.com/ethereum/go-ethereum/core/state"
|
||||
"github.com/ethereum/go-ethereum/trie"
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
iter "github.com/vulcanize/go-eth-state-node-iterator"
|
||||
)
|
||||
|
||||
type Tracker struct {
|
||||
recoveryFile string
|
||||
|
||||
startChan chan *Iterator
|
||||
stopChan chan *Iterator
|
||||
started map[*Iterator]struct{}
|
||||
stopped []*Iterator
|
||||
running bool
|
||||
}
|
||||
|
||||
type Iterator struct {
|
||||
trie.NodeIterator
|
||||
tracker *Tracker
|
||||
|
||||
SeekedPath []byte // latest path seeked from the tracked iterator
|
||||
EndPath []byte // endPath for the tracked iterator
|
||||
}
|
||||
|
||||
func New(file string, buf uint) Tracker {
|
||||
return Tracker{
|
||||
recoveryFile: file,
|
||||
startChan: make(chan *Iterator, buf),
|
||||
stopChan: make(chan *Iterator, buf),
|
||||
started: map[*Iterator]struct{}{},
|
||||
running: true,
|
||||
}
|
||||
}
|
||||
|
||||
func (tr *Tracker) CaptureSignal(cancelCtx context.CancelFunc) {
|
||||
sigChan := make(chan os.Signal, 1)
|
||||
|
||||
signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM)
|
||||
go func() {
|
||||
sig := <-sigChan
|
||||
log.Errorf("Signal received (%v), stopping", sig)
|
||||
// cancel context on receiving a signal
|
||||
// on ctx cancellation, all the iterators complete processing of their current node before stopping
|
||||
cancelCtx()
|
||||
}()
|
||||
}
|
||||
|
||||
// Wraps an iterator in a Iterator. This should not be called once halts are possible.
|
||||
func (tr *Tracker) Tracked(it trie.NodeIterator, recoveredPath []byte) (ret *Iterator) {
|
||||
// create seeked path of max capacity (65)
|
||||
iterSeekedPath := make([]byte, 0, 65)
|
||||
// intially populate seeked path with the recovered path
|
||||
// to be used in trie traversal
|
||||
if recoveredPath != nil {
|
||||
iterSeekedPath = append(iterSeekedPath, recoveredPath...)
|
||||
}
|
||||
|
||||
// if the iterator being tracked is a PrefixBoundIterator, capture it's end path
|
||||
// to be used in trie traversal
|
||||
var endPath []byte
|
||||
if boundedIter, ok := it.(*iter.PrefixBoundIterator); ok {
|
||||
endPath = boundedIter.EndPath
|
||||
}
|
||||
|
||||
ret = &Iterator{it, tr, iterSeekedPath, endPath}
|
||||
tr.startChan <- ret
|
||||
return
|
||||
}
|
||||
|
||||
// explicitly stops an iterator
|
||||
func (tr *Tracker) StopIterator(it *Iterator) {
|
||||
tr.stopChan <- it
|
||||
}
|
||||
|
||||
// dumps iterator path and bounds to a text file so it can be restored later
|
||||
func (tr *Tracker) dump() error {
|
||||
log.Debugf("Dumping recovery state to: %s", tr.recoveryFile)
|
||||
var rows [][]string
|
||||
for it := range tr.started {
|
||||
var startPath []byte
|
||||
var endPath []byte
|
||||
if impl, ok := it.NodeIterator.(*iter.PrefixBoundIterator); ok {
|
||||
// if the iterator being tracked is a PrefixBoundIterator,
|
||||
// initialize start and end paths with its bounds
|
||||
startPath = impl.StartPath
|
||||
endPath = impl.EndPath
|
||||
}
|
||||
|
||||
// if seeked path and iterator path are non-empty, use iterator's path as startpath
|
||||
if !bytes.Equal(it.SeekedPath, []byte{}) && !bytes.Equal(it.Path(), []byte{}) {
|
||||
startPath = it.Path()
|
||||
}
|
||||
|
||||
rows = append(rows, []string{
|
||||
fmt.Sprintf("%x", startPath),
|
||||
fmt.Sprintf("%x", endPath),
|
||||
fmt.Sprintf("%x", it.SeekedPath),
|
||||
})
|
||||
}
|
||||
|
||||
file, err := os.Create(tr.recoveryFile)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer file.Close()
|
||||
out := csv.NewWriter(file)
|
||||
|
||||
return out.WriteAll(rows)
|
||||
}
|
||||
|
||||
// attempts to read iterator state from file
|
||||
// if file doesn't exist, returns an empty slice with no error
|
||||
func (tr *Tracker) Restore(tree state.Trie) ([]trie.NodeIterator, error) {
|
||||
file, err := os.Open(tr.recoveryFile)
|
||||
if err != nil {
|
||||
if os.IsNotExist(err) {
|
||||
return nil, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
log.Debugf("Restoring recovery state from: %s", tr.recoveryFile)
|
||||
|
||||
defer file.Close()
|
||||
in := csv.NewReader(file)
|
||||
in.FieldsPerRecord = 3
|
||||
rows, err := in.ReadAll()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var ret []trie.NodeIterator
|
||||
for _, row := range rows {
|
||||
// pick up where each interval left off
|
||||
var startPath []byte
|
||||
var endPath []byte
|
||||
var recoveredPath []byte
|
||||
|
||||
if len(row[0]) != 0 {
|
||||
if _, err = fmt.Sscanf(row[0], "%x", &startPath); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if len(row[1]) != 0 {
|
||||
if _, err = fmt.Sscanf(row[1], "%x", &endPath); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
if len(row[2]) != 0 {
|
||||
if _, err = fmt.Sscanf(row[2], "%x", &recoveredPath); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
// force the lower bound path to an even length (required by geth API/HexToKeyBytes)
|
||||
if len(startPath)&0b1 == 1 {
|
||||
// decrement first to avoid skipped nodes
|
||||
decrementPath(startPath)
|
||||
startPath = append(startPath, 0)
|
||||
}
|
||||
it := iter.NewPrefixBoundIterator(tree.NodeIterator(iter.HexToKeyBytes(startPath)), startPath, endPath)
|
||||
ret = append(ret, tr.Tracked(it, recoveredPath))
|
||||
}
|
||||
|
||||
log.Debugf("Restored %d iterators", len(ret))
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (tr *Tracker) HaltAndDump() error {
|
||||
tr.running = false
|
||||
|
||||
// drain any pending iterators
|
||||
close(tr.startChan)
|
||||
for start := range tr.startChan {
|
||||
tr.started[start] = struct{}{}
|
||||
}
|
||||
close(tr.stopChan)
|
||||
for stop := range tr.stopChan {
|
||||
tr.stopped = append(tr.stopped, stop)
|
||||
}
|
||||
|
||||
for _, stop := range tr.stopped {
|
||||
delete(tr.started, stop)
|
||||
}
|
||||
|
||||
if len(tr.started) == 0 {
|
||||
// if the tracker state is empty, erase any existing recovery file
|
||||
err := os.Remove(tr.recoveryFile)
|
||||
if os.IsNotExist(err) {
|
||||
err = nil
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
return tr.dump()
|
||||
}
|
||||
|
||||
func (it *Iterator) Next(descend bool) bool {
|
||||
ret := it.NodeIterator.Next(descend)
|
||||
|
||||
if !ret {
|
||||
if it.tracker.running {
|
||||
it.tracker.stopChan <- it
|
||||
} else {
|
||||
log.Errorf("iterator stopped after tracker halted: path=%x", it.Path())
|
||||
}
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
// Subtracts 1 from the last byte in a path slice, carrying if needed.
|
||||
// Does nothing, returning false, for all-zero inputs.
|
||||
func decrementPath(path []byte) bool {
|
||||
// check for all zeros
|
||||
allzero := true
|
||||
for i := 0; i < len(path); i++ {
|
||||
allzero = allzero && path[i] == 0
|
||||
}
|
||||
if allzero {
|
||||
return false
|
||||
}
|
||||
for i := len(path) - 1; i >= 0; i-- {
|
||||
val := path[i]
|
||||
path[i]--
|
||||
if val == 0 {
|
||||
path[i] = 0xf
|
||||
} else {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
49
concurrent_iterator/util.go
Normal file
49
concurrent_iterator/util.go
Normal file
@ -0,0 +1,49 @@
|
||||
package iterator
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"github.com/ethereum/go-ethereum/trie"
|
||||
)
|
||||
|
||||
func CompareNodes(a, b trie.NodeIterator) int {
|
||||
if cmp := bytes.Compare(a.Path(), b.Path()); cmp != 0 {
|
||||
return cmp
|
||||
}
|
||||
if a.Leaf() && !b.Leaf() {
|
||||
return -1
|
||||
} else if b.Leaf() && !a.Leaf() {
|
||||
return 1
|
||||
}
|
||||
if cmp := bytes.Compare(a.Hash().Bytes(), b.Hash().Bytes()); cmp != 0 {
|
||||
return cmp
|
||||
}
|
||||
if a.Leaf() && b.Leaf() {
|
||||
return bytes.Compare(a.LeafBlob(), b.LeafBlob())
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
// hexToKeyBytes turns hex nibbles into key bytes.
|
||||
// This can only be used for keys of even length.
|
||||
func HexToKeyBytes(hex []byte) []byte {
|
||||
if hasTerm(hex) {
|
||||
hex = hex[:len(hex)-1]
|
||||
}
|
||||
if len(hex)&1 != 0 {
|
||||
panic("can't convert hex key of odd length")
|
||||
}
|
||||
key := make([]byte, len(hex)/2)
|
||||
decodeNibbles(hex, key)
|
||||
return key
|
||||
}
|
||||
|
||||
func decodeNibbles(nibbles []byte, bytes []byte) {
|
||||
for bi, ni := 0, 0; ni < len(nibbles); bi, ni = bi+1, ni+2 {
|
||||
bytes[bi] = nibbles[ni]<<4 | nibbles[ni+1]
|
||||
}
|
||||
}
|
||||
|
||||
// hasTerm returns whether a hex key has the terminator flag.
|
||||
func hasTerm(s []byte) bool {
|
||||
return len(s) > 0 && s[len(s)-1] == 16
|
||||
}
|
Loading…
Reference in New Issue
Block a user